Compartir a través de


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).

Creación de un clúster de AKS

  1. Inicie sesión en Azure Portal.

  2. En la página principal de Azure Portal, seleccione Crear un recurso.

  3. En la sección Categorías, seleccione Contenedores>Azure Kubernetes Service (AKS).

  4. 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.

        Nota:

        Puede cambiar la configuración preestablecida al crear el clúster mediante la selección de Comparación de configuraciones preestablecidas y la elección de otra opción. Captura de pantalla de Creación de un clúster de AKS: opciones preestablecidas del 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.

        Captura de pantalla en la que se muestra cómo configurar un clúster de AKS en Azure Portal.

  5. 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.

      Recorte de pantalla en la que se muestra cómo crear un grupo de nodos que ejecute Windows Server 2022.

  6. 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.

  1. Abra Cloud Shell seleccionando el botón >_ situado en la parte superior de la página Azure Portal.

  2. Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az 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
    
  3. 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.

  1. 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.

  2. 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.

  1. Compruebe el estado de los pods implementados con el comando kubectl get pods. Haga que todos los pods tengan el estado Running antes de continuar.

    kubectl get pods
    
  2. 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
    
  3. 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 de kubectl.

  4. Para ver la aplicación de ejemplo en acción, abra un explorador web en la dirección IP externa del servicio.

    Captura de pantalla en la que se muestra cómo navegar hasta la aplicación de ejemplo de ASP.NET.

Eliminar recursos

Si no planea realizar el tutorial de AKS, debe eliminar el clúster para evitar incurrir en cargos de Azure.

  1. En Azure Portal, vaya a su grupo de recursos.

  2. Seleccione Eliminar grupo de recursos.

  3. Escriba el nombre del grupo de recursos para confirmar la eliminación y seleccione Eliminar.

  4. 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.