Inicio rápido: Creación de un clúster automático de Azure Kubernetes Service (AKS)

Se aplica a: ✔️ AKS Automatic

Azure Kubernetes Service (AKS) Automatic es una experiencia administrada de Kubernetes que automatiza la configuración y las operaciones del clúster de AKS e inserta las configuraciones de procedimientos recomendados. AKS Automatic también incluye un [SLA de preparación de pod][azure-sla] que garantiza que el 99,9% de las operaciones de preparación de pods cualificadas se completen en 5 minutos, garantizando una infraestructura fiable y autorreparable para tus aplicaciones. En esta guía de inicio rápido, ha aprendido a hacer lo siguiente:

  • Implemente un clúster de AKS Automatic.
  • Ejecute una aplicación de muestra de varios contenedores con un grupo de microservicios e interfaces web simulando un escenario de venta minorista.

Antes de empezar

  • CLI de Azure versión 2.86.0 o posterior. Para buscar la versión, ejecute el az --version comando . Si necesita instalar o actualizar, consulte Install CLI de Azure.
  • Si tiene varias suscripciones de Azure, seleccione el identificador de suscripción adecuado para facturar los recursos mediante el comando az account set.
  • 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 (VM), necesita Microsoft.Compute/virtualMachines/write y Microsoft.Resources/deployments/* permisos. Para obtener una lista de roles y permisos, consulte los roles integrados de Azure.

Nota:

Este ejemplo crea el clúster AKS Automatic con el recurso azurerm_kubernetes_automatic_cluster del proveedor AzureRM, que requiere la versión v4.81 o posterior del proveedor AzureRM. Para obtener un ejemplo equivalente que use el proveedor AzAPI en su lugar, consulte 101-aks-automatic-azapi. Póngase en contacto con AzAPI cuando necesite control directo sobre la carga de la API del clúster administrado, o una versión o propiedad de API que el proveedor de AzureRM aún no ha expuesto.

Importante

A partir de AKS 1.36, los nuevos clústeres automáticos de AKS habilitarán de forma predeterminada la API de puerta de enlace de Kubernetes a través del complemento de enrutamiento de aplicaciones en lugar de Entrada NGINX administrada con el complemento de enrutamiento de aplicaciones debido a la Retirada de NGINX de entrada ascendente.

Los clústeres automáticos existentes no se ven afectados, pero deben comenzar la migración a la API de puerta de enlace de Kubernetes a través del complemento de enrutamiento de aplicaciones.

Limitaciones

Las limitaciones siguientes se aplican a los clústeres automáticos de AKS:

  • AKS Automatic está disponible con carácter general en las siguientes regiones: australiaeast, austriaeast, belgiumcentral, brazilsouth, canadacentral, centralindia, centralus, chilecentral, denmarkeast, eastasia, eastus, eastus2, francecentral, germanywestcentral, indonesiacentral, israelcentral, italynorth, japaneast, japanwest, koreacentral, malaysiawest, mexicocentral, newzealandnorth, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus2, westus3.
    • Los nuevos clústeres automáticos de AKS habilitan de forma predeterminada grupos de nodos del sistema administrados y LocalDNS. No se pueden crear clústeres automáticos de AKS sin grupos de nodos del sistema administrados en ninguna región.
  • El clúster automático de AKS tiene node resource group lockdown preconfigurado, que no permite cambios en el grupo de recursos MC_, lo que impide vínculos de red virtual en la zona de DNS privado predeterminada. Para escenarios de redes virtuales cruzadas o DNS personalizados, utilice una red personalizada y un DNS privado siguiendo Crear un clúster automático privado de Azure Kubernetes Service (AKS) en una red virtual personalizada.
  • se requiere CLI de Azure versión 2.86.0 o posterior. Para buscar la versión, ejecute el az --version comando . Si necesita instalar o actualizar, consulte Install CLI de Azure.
  • No se admiten las siguientes extensiones:
  • No se admiten los nodos de Windows.
  • No se admite la migración de la SKU base de AKS a la SKU automática.
  • No se admiten las migraciones entre clústeres automáticos de AKS sin grupos de nodos del sistema administrado y clústeres automáticos de AKS con grupos de nodos del sistema administrado.

Creación de un grupo de recursos

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

Cree un grupo de recursos con el comando az group create. En el ejemplo siguiente se crea un grupo de recursos denominado myResourceGroup en la ubicación canadacentral :

az group create --name myResourceGroup --location canadacentral

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

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

Crear un clúster de AKS Automatic

Cree un clúster automático de AKS usando el comando az aks create con el parámetro --sku establecido en automatic. En el ejemplo siguiente se crea un clúster denominado myAKSAutomaticCluster con Prometheus administrado y la integración de Container Insights habilitada:

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

Cuando finalice el despliegue, la salida muestra una propiedad hostedSystemProfile con la propiedad enabled establecida en true. También puede ejecutar el siguiente comando para mostrar las hostedSystemProfile propiedades:

az aks show \
  --resource-group myResourceGroup \
  --name myAKSAutomaticCluster \
  --query hostedSystemProfile
{
  "enabled": true,
  "nodeSubnetId": null,
  "systemNodeSubnetId": null
}

Creación de un clúster de Kubernetes automático

  1. Para crear un clúster automático de AKS, busque y seleccione Servicios de Kubernetes. Esto le lleva a la página del Centro de Kubernetes (versión preliminar).

  2. En la página del Centro Kubernetes (versión preliminar), seleccione Crear>Clúster Automático de Kubernetes.

     Captura de pantalla del botón Crear clúster de AKS automático en el Azure portal.

  3. En la pestaña Aspectos básicos , rellene todos los campos necesarios (Suscripción, Grupo de recursos, Nombre del clúster de Kubernetes y Región) y, a continuación, seleccione Siguiente.

    La captura de pantalla de la pestaña Crear - Aspectos básicos de un clúster automático de AKS en el portal de Azure.

  4. En la pestaña Monitoring, seleccione las configuraciones de supervisión deseadas en Azure Monitor (Container Insights), Prometheus administrado, Paneles de Grafana y Alertas y, después, seleccione Siguiente.

    La captura de pantalla de la pestaña Supervisión al crear un clúster automático de AKS en el portal de Azure.

  5. En la pestaña Advanced, seleccione las configuraciones avanzadas deseadas Acceso privado, Azure Redes virtuales, Identidad administrada, Seguridad de red de contenedor (ACNS) y Espacios de nombres de Kubernetes administrados y, a continuación, seleccione Review + create.

    La captura de pantalla de la pestaña Avanzadas al crear un clúster automático de AKS en el portal de Azure.

  6. Revise las configuraciones de la pestaña Revisar y crear y, a continuación, seleccione Crear para implementar el clúster automático de AKS.

  7. Empiece a configurar la primera aplicación desde GitHub y configure 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.

Revisión del archivo de Bicep

El siguiente archivo Bicep define un clúster automático de AKS:

@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@2026-02-01' ' = {
  name: clusterName
  location: location
  sku: {
    name: 'Automatic'
  }
  identity: {
    type: 'SystemAssigned'
  }
}

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

Despliega el archivo Bicep

  1. Guarda el archivo Bicep como main.bicep en su equipo local.

    Importante

    El archivo 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 Bicep mediante el comando [az deployment group create][az-deployment-group-create].

    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.

Revisión del código de Terraform

Nota:

El código de ejemplo de este artículo se encuentra en el repositorio Azure Terraform GitHub. Puedes ver el archivo de registro que contiene los resultados de las pruebas de las versiones actuales y anteriores de Terraform.

Consulte más artículos y código de ejemplo en el que se muestra cómo usar Terraform para administrar recursos de Azure.

  1. Cree un directorio para probar el código de Terraform de ejemplo y establézcalo como directorio actual.

  2. Cree un archivo denominado providers.tf e inserte el siguiente código:

    terraform {
      required_version = ">= 1.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>5.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Crea un archivo con nombre main.tf y añade el siguiente código:

    # Create a random name for the resource group using random_pet
    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    # Create a resource group using the generated random name
    resource "azurerm_resource_group" "rg" {
      location = var.resource_group_location
      name     = random_pet.rg_name.id
    }
    
    # Create a random name for the AKS Automatic cluster
    resource "random_pet" "cluster_name" {
      prefix = var.cluster_name_prefix
    }
    
    # Create the AKS Automatic cluster
    resource "azurerm_kubernetes_automatic_cluster" "aks_automatic" {
      name                = random_pet.cluster_name.id
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
    
      identity {
        type = "SystemAssigned"
      }
    }
    
  4. Crea un archivo con nombre variables.tf y añade el siguiente código:

    variable "resource_group_location" {
      type        = string
      default     = "westus2"
      description = "Location of the resource group."
    }
    
    variable "resource_group_name_prefix" {
      type        = string
      default     = "rg"
      description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
    }
    
    variable "cluster_name_prefix" {
      type        = string
      default     = "aks-automatic"
      description = "Prefix of the AKS Automatic cluster name that's combined with a random ID so the name is unique in your Azure subscription."
    }
    
  5. Cree un archivo denominado outputs.tf e inserte el siguiente código:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "cluster_name" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.name
    }
    
    output "cluster_id" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.id
    }
    
    output "node_resource_group_id" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.node_resource_group_id
    }
    
    output "fully_qualified_domain_name" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.fully_qualified_domain_name
    }
    

Inicializar Terraform

Ejecute terraform init para inicializar la implementación de Terraform. Este comando descarga los proveedores de Azure necesarios para administrar los recursos de Azure.

terraform init -upgrade

Creación de un plan de ejecución de Terraform

Ejecute terraform plan para crear un plan de ejecución.

terraform plan -out main.tfplan

Aplicación de un plan de ejecución de Terraform

Ejecute terraform apply para aplicar el plan de ejecución a su infraestructura en la nube.

terraform apply main.tfplan

La creación de un clúster automático de AKS tarda varios minutos en completarse.

Comprobación del clúster

  1. Obtenga el nombre del grupo de recursos de Azure y el nombre del clúster.

    resource_group_name=$(terraform output -raw resource_group_name)
    cluster_name=$(terraform output -raw cluster_name)
    
  2. Ejecute az aks show para mostrar el clúster y confirme que usa la Automatic SKU.

    az aks show --resource-group $resource_group_name --name $cluster_name --query "{name:name, sku:sku, provisioningState:provisioningState}"
    

Conectarse al clúster

Para administrar un clúster de Kubernetes, use kubectl, el cliente de línea de comandos de Kubernetes. kubectl ya está instalado si usa Azure Cloud Shell. Puede instalar kubectl localmente mediante el az aks install-cli comando . Los clústeres automáticos de AKS se configuran con Microsoft Entra ID para el control de acceso basado en rol (RBAC) de Kubernetes .

Nota:

Al crear un clúster mediante el CLI de Azure, a su usuario se le asignaron roles integrados para Azure Kubernetes Service RBAC Cluster Admin.

  1. Configure kubectl para conectarse a su clúster de Kubernetes utilizando 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
    
  1. Configure kubectl para conectarse al clúster de Kubernetes mediante el az aks get-credentials comando . Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.

    az aks get-credentials --resource-group $resource_group_name --name $cluster_name
    
  1. 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 el siguiente ejemplo de salida se muestra cómo se le solicita iniciar 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 del sistema administrado. Asegúrese de que el estado del nodo es Listo.

    NAME                           STATUS   ROLES    AGE   VERSION
    aks-hostedpool-16652789-vms1   Ready    <none>   19m   v1.34.7
    aks-hostedpool-16652789-vms2   Ready    <none>   19m   v1.34.7
    aks-hostedpool-16652789-vms3   Ready    <none>   19m   v1.34.7
    aks-system-surge-zq4d2         Ready    <none>   19m   v1.34.7
    

Implementación de la aplicación

Para implementar la aplicación, use 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.

  • Tienda virtual: 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. 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:

    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, el aprovisionamiento automático de nodos puede tardar unos minutos en crear un grupo de nodos para ejecutar los pods.

    kubectl get pods -n aks-store-demo
    
  2. Comprueba si la aplicación de tienda tiene una dirección IP pública. 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 monitoreo 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 su punto de 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 planea pasar por el tutorial AKS, elimine los recursos innecesarios para evitar cargos de Azure.

Quite el grupo de recursos, el servicio de contenedor y todos los recursos relacionados mediante el comando az group delete.

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.

Cuando ya no necesite los recursos que creó con Terraform, ejecute terraform plan y especifique la opción destroy.

terraform plan -destroy -out main.destroy.tfplan

Ejecute terraform apply para aplicar el plan de ejecución.

terraform apply main.destroy.tfplan

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, consulte la Introducción a Azure Kubernetes Service (AKS) Automatic