Compartir vía


Inicio rápido: implementación de clústeres de Azure Kubernetes Service (AKS) Automatic (versión preliminar)

Se aplica a: ✔️ AKS Automatic (versión preliminar)

Azure Kubernetes Service (AKS) Automatic (versión preliminar) proporciona la experiencia de Kubernetes administrada de forma más sencilla para desarrolladores, ingenieros de DevOps e ingenieros de plataforma. Ideal para aplicaciones modernas y de inteligencia artificial, AKS Automatic automatiza la configuración y las operaciones del clúster de AKS e inserta las configuraciones de procedimientos recomendados. Los usuarios de cualquier nivel de aptitud pueden beneficiarse de la seguridad, el rendimiento y la dependencia de AKS Automatic para sus aplicaciones.

En este inicio rápido va a aprender a:

  • Implemente un clúster de AKS Automatic.
  • Ejecute una aplicación de varios contenedores de ejemplo con un grupo de microservicios y front-end web simulando un escenario comercial.

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

  • En este artículo se necesita la versión 2.57.0, o versiones posteriores, de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada allí la versión más reciente.

  • En este artículo se requiere la extensión de la CLI de Azure de aks-preview versión 3.0.0b13 o posterior.

  • Si tiene varias suscripciones de Azure, seleccione el identificador de suscripción adecuado en el que se deben facturar los recursos con el comando az account set.

  • Registre la característica AutomaticSKUPreview en la suscripción de Azure.

  • La identidad que crea el clúster también debe tener los permisos siguientes en la suscripción:

    • Microsoft.Authorization/policyAssignments/write
    • Microsoft.Authorization/policyAssignments/read

Importante

Asegúrese de que la suscripción tiene cuota de 24 vCPU de la máquina virtual Standard_DS4_v2 para la región en la que va a implementar el clúster. Puede ver cuotas para familias de máquinas virtuales específicas y enviar solicitudes de aumento de cuota a través de Azure Portal. .png

  • Para implementar un archivo Bicep, se necesita acceso de escritura en los recursos que crea y acceso a todas las operaciones del tipo de recurso Microsoft.Resources/deployments. Por ejemplo, para crear una máquina virtual, necesita los permisos Microsoft.Compute/virtualMachines/write y Microsoft.Resources/deployments/*. Para obtener una lista de roles y permisos, consulte Roles integrados de Azure.

Instalación de la versión preliminar de la extensión de la CLI de Azure en versión preliminar de AKS

Importante

Las características en versión preliminar de AKS están disponibles como opción de participación y autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de AKS reciben cobertura parcial del soporte al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:

Ejecute el siguiente comando para instalar la extensión de versión preliminar de AKS:

az extension add --name aks-preview

Ejecute el siguiente comando para actualizar a la versión más reciente de la extensión publicada:

az extension update --name aks-preview

Registrar las marcas de característica

Para usar AKS Automatic en versión preliminar, debe registrar marcas de características para otras características necesarias. Registre las marcas de característica siguientes mediante el comando az-feature-register.

az feature register --namespace Microsoft.ContainerService --name EnableAPIServerVnetIntegrationPreview
az feature register --namespace Microsoft.ContainerService --name NRGLockdownPreview
az feature register --namespace Microsoft.ContainerService --name SafeguardsPreview
az feature register --namespace Microsoft.ContainerService --name NodeAutoProvisioningPreview
az feature register --namespace Microsoft.ContainerService --name DisableSSHPreview
az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview

Para comprobar el estado de registro se usa el comandoaz feature show. Tarda unos minutos en que el estado muestre Registrado:

az feature show --namespace Microsoft.ContainerService --name AutomaticSKUPreview

Cuando aparezca el estado Registrado, actualice el registro del proveedor de recursos Microsoft.ContainerService mediante el comando az provider register:

az provider register --namespace Microsoft.ContainerService

Crear un grupo de recursos

Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure.

En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.

Cree un grupo de recursos con el comando az group create.

az group create --name myResourceGroup --location eastus

La salida del siguiente ejemplo es similar a la creación correcta del grupo de recursos:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Crear un clúster de AKS Automatic

Para crear un clúster de AKS Automatic, use el comando az aks create. En el ejemplo siguiente se crea un clúster denominado myAKSAutomaticCluster con la integración de Managed Prometheus y Container Insights habilitada.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSAutomaticCluster \
    --sku automatic

Transcurridos unos minutos, el comando se completa y devuelve información en formato JSON sobre el clúster.

Conectarse al clúster

Para administrar un clúster de Kubernetes, use kubectl, el cliente de línea de comandos de Kubernetes. Si usa Azure Cloud Shell, kubectl ya está instalado. Para instalar kubectl localmente, ejecute el comando az aks install-cli. Los clústeres de AKS Automatic se configuran con el control de acceso basado en roles (RBAC) de Microsoft Entra ID para Kubernetes. Al crear un clúster mediante la CLI de Azure, al usuario se le asignan roles integrados para Azure Kubernetes Service RBAC Cluster Admin.

Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

Compruebe la conexión al clúster con el comando kubectl get. Este comando devuelve una lista de los nodos del clúster.

kubectl get nodes

En la salida de ejemplo siguiente se muestra cómo se le pide que inicie sesión.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

Después de iniciar sesión, la siguiente salida de ejemplo muestra los grupos de nodos administrados creados en los pasos anteriores. Asegúrese de que el estado del nodo es Listo.

NAME                                STATUS   ROLES   AGE     VERSION
aks-default-f8vj2                   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

Crer un clúster de Kubernetes Automatic

  1. Para crear un clúster de AKS Automatic, busque Kubernetes Servicesy seleccione clúster de Kubernetes Automatic en las opciones desplegables.

    Captura de pantalla del punto de entrada para crear un clúster de AKS Automatic en Azure Portal.

  2. En la pestaña Aspectos básicos, rellene todos los campos obligatorios necesarios para empezar: Suscripción, Grupo de recursos, Nombre del clúster y Región

    Captura de pantalla de la pestaña Crear: aspectos básicos de un clúster de AKS Automatic en Azure Portal.

    Si no se cumplen los requisitos previos y la suscripción requiere el registro de las marcas de vista previa, se mostrará un error en el campo Suscripción:

    Captura de pantalla del error que se muestra cuando una suscripción no tiene marcas de vista previa registradas al crear un clúster de AKS Automatic en Azure Portal.

  3. En la pestaña Supervisión, elija las configuraciones de supervisión en Azure Monitor, Managed Prometheus, Managed Grafana o configure alertas. Agregue etiquetas (opcional) y continúe con la creación del clúster.

    Captura de pantalla de la pestaña Supervisión al crear un clúster de AKS Automatic en Azure Portal.

  4. Introducción a la configuración de la primera aplicación desde GitHub y configuración de una canalización de implementación automatizada.

    Captura de pantalla de la pestaña Introducción en la hoja Información general después de crear un clúster de AKS Automatic en Azure Portal.

Conectarse al clúster

Para administrar un clúster de Kubernetes, use kubectl, el cliente de línea de comandos de Kubernetes. Si usa Azure Cloud Shell, kubectl ya está instalado. Para instalar kubectl localmente, ejecute el comando az aks install-cli. Los clústeres de AKS Automatic se configuran con el control de acceso basado en roles (RBAC) de Microsoft Entra ID para Kubernetes. Al crear un clúster mediante Azure Portal, al usuario se le asignan roles integrados para Azure Kubernetes Service RBAC Cluster Admin.

Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

Compruebe la conexión al clúster con el comando kubectl get. Este comando devuelve una lista de los nodos del clúster.

kubectl get nodes

En la salida de ejemplo siguiente se muestra cómo se le pide que inicie sesión.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

Después de iniciar sesión, la siguiente salida de ejemplo muestra los grupos de nodos administrados creados en los pasos anteriores. Asegúrese de que el estado del nodo es Listo.

NAME                                STATUS   ROLES   AGE     VERSION
aks-default-f8vj2                   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

Crear un grupo de recursos

Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure. Cuando crea un grupo de recursos, se le pide que especifique una ubicación. Esta ubicación es la ubicación de almacenamiento de los metadatos del grupo de recursos y donde se ejecutan los recursos en Azure si no se especifica otra región durante la creación de recursos.

En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.

Cree un grupo de recursos con el comando az group create.

az group create --name myResourceGroup --location eastus

La salida del siguiente ejemplo es similar a la creación correcta del grupo de recursos:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Revisión del archivo de Bicep

Este archivo de Bicep define un clúster de AKS Automatic. Aunque se trata de una versión preliminar, debe especificar el perfil de grupo de agentes de grupo de nodos del sistema.

@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
  name: clusterName
  location: location  
  sku: {
		name: 'Automatic'
  		tier: 'Standard'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        count: 3
        vmSize: 'Standard_DS4_v2'
        osType: 'Linux'
        mode: 'System'
      }
    ]
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Para obtener más información sobre el recurso definido en el archivo de Bicep, consulte la referencia de Microsoft.ContainerService/managedClusters.

Implementación del archivo de Bicep

  1. Guarde el archivo de Bicep como main.bicep en el equipo local.

    Importante

    El archivo de Bicep establece el parámetro clusterName en la cadena myAKSAutomaticCluster. Si desea usar otro nombre de clúster, asegúrese de actualizar la cadena al nombre de clúster preferido antes de guardar el archivo en el equipo.

  2. Implemente el archivo de Bicep con la CLI de Azure.

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    El clúster de AKS tarda unos minutos en crearse. Espere a que el clúster se implemente correctamente para pasar al siguiente paso.

Conectarse al clúster

Para administrar un clúster de Kubernetes, use kubectl, el cliente de línea de comandos de Kubernetes. Si usa Azure Cloud Shell, kubectl ya está instalado. Para instalar kubectl localmente, ejecute el comando az aks install-cli. Los clústeres de AKS Automatic se configuran con el control de acceso basado en roles (RBAC) de Microsoft Entra ID para Kubernetes. Al crear un clúster mediante Bicep, debe asignar uno de los roles integrados como Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin o Azure Kubernetes Service RBAC Cluster Admin a los usuarios, centrado en el clúster o un espacio de nombres específico. Asegúrese también de que los usuarios tengan el rol integrado Azure Kubernetes Service Cluster User para poder ejecutar az aks get-credentials y, a continuación, obtenga kubeconfig del clúster de AKS mediante el comando az aks get-credentials.

Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.

az aks get-credentials --resource-group myResourceGroup --name

Compruebe la conexión al clúster con el comando kubectl get. Este comando devuelve una lista de los nodos del clúster.

kubectl get nodes

En la salida de ejemplo siguiente se muestra cómo se le pide que inicie sesión.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

Después de iniciar sesión, la siguiente salida de ejemplo muestra los grupos de nodos administrados creados en los pasos anteriores. Asegúrese de que el estado del nodo es Listo.

NAME                                STATUS   ROLES   AGE     VERSION
aks-default-f8vj2                   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

Implementación de la aplicación

Para implementar la aplicación, se usa un archivo de manifiesto para crear todos los objetos necesarios para ejecutar la aplicación AKS Store. Un archivo de manifiesto de Kubernetes define el estado deseado del clúster, por ejemplo, qué imágenes de contenedor se van a ejecutar. El manifiesto incluye las siguientes implementaciones y servicios de Kubernetes:

Captura de pantalla de la arquitectura de ejemplo de Azure Store.

  • Escaparate: aplicación web para que los clientes vean productos y realicen pedidos.
  • Servicio de producto: muestra información del producto.
  • Servicio de pedidos: realiza pedidos.
  • Rabbit MQ: cola de mensajes para una cola de pedidos.

Nota:

No se recomienda ejecutar contenedores con estado, como Rabbit MQ, sin almacenamiento persistente para producción. Estos se usan aquí para simplificar, pero se recomienda usar servicios administrados, como Azure Cosmos DB o Azure Service Bus.

  1. Cree un espacio de nombres aks-store-demo para implementar los recursos de Kubernetes.

    kubectl create ns aks-store-demo
    
  2. Implemente la aplicación mediante el comando kubectl apply en el espacio de nombres aks-store-demo. El archivo YAML que define la implementación está en GitHub.

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    La salida del siguiente ejemplo muestra las implementaciones y los servicios creados correctamente:

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins created
    service/rabbitmq created
    deployment.apps/order-service created
    service/order-service created
    deployment.apps/product-service created
    service/product-service created
    deployment.apps/store-front created
    service/store-front created
    ingress/store-front 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.

  1. Compruebe el estado de los pods implementados con el comando kubectl get pods. Asegúrate de que todos los pods tengan el estado Running antes de continuar. Si se trata de la primera carga de trabajo que implementa, puede tardar unos minutos para que el aprovisionamiento automático de nodos cree un grupo de nodos para ejecutar los pods.

    kubectl get pods -n aks-store-demo
    
  2. Compruebe si hay una dirección IP pública para la aplicación de escaparate (store-front). Para supervisar el progreso, utilice el comando kubectl get service con el argumento --watch.

    kubectl get ingress store-front -n aks-store-demo --watch
    

    La salida de ADDRESS del servicio store-front aparece inicialmente vacía:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. Una vez que ADDRESS cambia de estar en blanco a una dirección IP pública real, use CTRL-C para detener el proceso de inspección de kubectl.

    En la salida del ejemplo siguiente se muestra una dirección IP pública válida asignada al servicio:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. Abra un explorador web en la dirección IP externa de la entrada para ver la aplicación Azure Store en acción.

    Captura de pantalla de la aplicación de ejemplo de la Tienda AKS.

Eliminación del clúster

Si no tiene previsto seguir el tutorial de AKS, limpie los recursos innecesarios para evitar cargos de Azure. Ejecute el comando az group delete para quitar el grupo de recursos, el servicio de contenedor y todos los recursos relacionados.

az group delete --name myResourceGroup --yes --no-wait

Nota:

El clúster de AKS se creó con una identidad administrada asignada por el sistema, que es la opción de identidad predeterminada utilizada en este inicio rápido. La plataforma administra esta identidad para que no tenga que quitarla manualmente.

Pasos siguientes

En este inicio rápido, ha implementado un clúster de Kubernetes mediante AKS Automatic y luego ha implementado en él una aplicación simple de varios contenedores. 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 obtener más información sobre AKS Automatic, continúe con la introducción.