Implementación de un contenedor de Windows Server en un clúster de Azure Kubernetes Service (AKS) mediante Azure Portal
Azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado que le permite implementar y administrar clústeres rápidamente. En este artículo, implementará un clúster de AKS que ejecuta contenedores de Windows Server mediante Azure Portal. También implementará una aplicación de ejemplo de ASP.NET en un contenedor de Windows Server en el clúster.
Nota:
Para empezar a aprovisionar rápidamente un clúster de AKS, en este artículo se incluyen los pasos para implementar un clúster con la configuración predeterminada solo con fines de evaluación. Antes de implementar un clúster listo para producción, se recomienda familiarizarse con nuestra arquitectura de referencia de línea de base para considerar cómo se alinea con sus requisitos empresariales.
Antes de empezar
En esta guía rápida se presupone un conocimiento básico de los conceptos de Kubernetes. Para más información, consulte Conceptos básicos de Kubernetes de Azure Kubernetes Service (AKS).
- Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
- Si no está familiarizado con Azure Cloud Shell, consulte Introducción a Azure Cloud Shell.
- Asegúrese de que la identidad que usará para crear el clúster tenga los permisos mínimos adecuados. Para más información sobre el acceso y la identidad en AKS, consulte Opciones de acceso e identidad en Azure Kubernetes Service (AKS).
Creación de un clúster de AKS
Inicie sesión en Azure Portal.
En la página principal de Azure Portal, seleccione Crear un recurso.
En la sección Categorías, seleccione Contenedores>Azure Kubernetes Service (AKS).
En la pestaña Información básica, configure los siguientes valores:
- En Detalles del proyecto:
- Suscripción: seleccione la suscripción de Azure que quiere usar para este clúster de AKS.
- Grupo de recursos: seleccione Crear nuevo, escriba un nombre de grupo de recursos, como myResourceGroup, y seleccione Aceptar. Aunque puede seleccionar un grupo de recursos existente, con fines de prueba o evaluación, se recomienda crear un grupo de recursos para hospedar temporalmente estos recursos y evitar que afecte a las cargas de trabajo de producción o desarrollo.
- En Detalles del clúster:
Configuración preestablecida de clúster: seleccione Desarrollo/pruebas. Para obtener más información sobre las configuraciones preestablecidas, vea Valores preestablecidos de configuración de clúster en Azure Portal.
Nombre de clúster de Kubernetes: escriba un nombre de clúster, como myAKSCluster.
Región: seleccione una región, como Este de EE. UU. 2.
Zonas de disponibilidad: seleccione Ninguna.
Plan de tarifa de AKS: seleccione Gratis.
Deje los valores predeterminados para la configuración restante y seleccione Siguiente.
- En Detalles del proyecto:
En la pestaña Grupos de nodos, configure los siguientes valores:
Seleccione Agregar grupo de nodos y escriba un nombre de grupo de nodos, como npwin. Para un grupo de nodos de Windows, el nombre debe tener seis caracteres o menos.
Modo: seleccione Usuario.
SKU del sistema operativo: seleccione Windows 2022.
Zonas de disponibilidad: seleccione Ninguna.
Deje desactivada la casilla Habilitar instancias de Azure Spot.
Tamaño de nodo: seleccione Elegir un tamaño. En la página Seleccionar un tamaño de máquina virtual, seleccione D2s_v3 y, a continuación, seleccione Seleccionar.
Deje los valores predeterminados para la configuración restante y seleccione Agregar.
Seleccione Revisar y crear para ejecutar la validación en la configuración del clúster. Una vez completada la validación, seleccione Crear.
El clúster de AKS tarda unos minutos en crearse. Una vez completada la implementación, vaya al recurso seleccionando Ir al recurso o vaya al grupo de recursos del clúster de AKS y seleccione el recurso de AKS.
Conectarse al clúster
Para administrar un clúster de Kubernetes, usará kubectl, el cliente de línea de comandos de Kubernetes. Si usa Azure Cloud Shell, kubectl
ya está instalado. Si no está familiarizado con Cloud Shell, consulte Introducción a Azure Cloud Shell.
Abra Cloud Shell seleccionando el botón
>_
situado en la parte superior de la página Azure Portal.Para configurar
kubectl
para conectarse a su clúster de Kubernetes, use el comandoaz aks get-credentials
. El siguiente comando descarga las credenciales y configura la CLI de Kubernetes para usarlas.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Compruebe la conexión al clúster usando el comando
kubectl get nodes
, que devuelve una lista de los nodos del clúster.kubectl get nodes
En la siguiente salida de ejemplo se muestran todos los nodos del clúster. Asegúrese de que el estado de todos los nodos sea Listo:
NAME STATUS ROLES AGE VERSION aks-agentpool-11741175-vmss000000 Ready agent 8m17s v1.29.9 aks-agentpool-11741175-vmss000001 Ready agent 8m17s v1.29.9 aksnpwin000000 Ready agent 8m17s v1.29.9 aks-userpool-11741175-vmss000000 Ready agent 8m17s v1.29.9 aks-userpool-11741175-vmss000001 Ready agent 8m17s v1.29.9
Implementación de la aplicación
Un archivo de manifiesto de Kubernetes define un estado deseado del clúster, por ejemplo, qué imágenes de contenedor se van a ejecutar. En este inicio rápido, usará un archivo de manifiesto para crear todos los objetos necesarios para ejecutar la aplicación de ejemplo de ASP.NET en un contenedor de Windows Server. Este archivo de manifiesto incluye una implementación de Kubernetes para la aplicación de ejemplo de ASP.NET y un servicio de Kubernetes externo para acceder a la aplicación desde Internet.
La aplicación de ejemplo de ASP.NET se proporciona como parte de los ejemplos de .NET Framework y se ejecuta en un contenedor de Windows Server. El archivo de manifiesto de Kubernetes debe definir un selector de nodos que le indique al clúster de AKS que ejecute el pod de la aplicación de ejemplo de ASP.NET en un nodo que pueda ejecutar contenedores de Windows Server.
Cree un archivo denominado
sample.yaml
y péguelo en la siguiente definición de código YAML.apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: sample
Para obtener un desglose de los archivos de manifiesto de YAML, consulte Implementaciones y manifiestos de YAML.
Si crea y guarda el archivo YAML localmente, para cargar el archivo de manifiesto en el directorio predeterminado de CloudShell, seleccione el botón Cargar y descargar archivos y elija el archivo en el sistema de archivos local.
Implemente la aplicación mediante el comando
kubectl apply
y especifique el nombre del manifiesto de YAML.kubectl apply -f sample.yaml
En la salida de ejemplo siguiente se muestran la implementación y el servicio que se crearon correctamente:
deployment.apps/sample created service/sample created
Prueba de la aplicación
Cuando se ejecuta la aplicación, un servicio de Kubernetes expone el front-end de la aplicación a Internet. Este proceso puede tardar unos minutos en completarse. En ocasiones, el servicio puede tardar más de unos minutos en aprovisionarse. Espere hasta 10 minutos para que se produzca el aprovisionamiento.
Compruebe el estado de los pods implementados con el comando
kubectl get pods
. Haga que todos los pods tengan el estadoRunning
antes de continuar.kubectl get pods
Para supervisar el progreso, utilice el comando
kubectl get service
con el argumento--watch
.kubectl get service sample --watch
Inicialmente, la salida muestra el parámetro EXTERNAL-IP del servicio de ejemplo como pendiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Cuando la dirección EXTERNAL-IP cambie de pendiente a una dirección IP pública real, use
CTRL-C
para detener el proceso de inspección dekubectl
.Para ver la aplicación de ejemplo en acción, abra un explorador web en la dirección IP externa del servicio.
Eliminar recursos
Si no planea realizar el tutorial de AKS, debe eliminar el clúster para evitar incurrir en cargos de Azure.
En Azure Portal, vaya a su grupo de recursos.
Seleccione Eliminar grupo de recursos.
Escriba el nombre del grupo de recursos para confirmar la eliminación y seleccione Eliminar.
En el cuadro de diálogo Confirmación de eliminación, seleccione Eliminar.
Nota
El clúster de AKS se ha creado con una identidad administrada asignada por el sistema (la opción de identidad predeterminada usada en este inicio rápido), la identidad se administra por la plataforma y no es necesaria su eliminación.
Pasos siguientes
En este inicio rápido, ha implementado un clúster de Kubernetes y, después, una aplicación de ejemplo de ASP.NET en un contenedor de Windows Server de este. Esta aplicación de ejemplo es solo para fines de demostración y no representa todos los procedimientos recomendados para las aplicaciones de Kubernetes. Para instrucciones sobre cómo crear soluciones completas con AKS para producción, consulte Guía de soluciones de AKS.
Para más información sobre AKS y obtener un ejemplo completo desde el código hasta la implementación, continúe con el tutorial del clúster de Kubernetes.
Azure Kubernetes Service