Tutorial: Habilitar el complemento Controlador de entrada para un nuevo clúster de AKS con una nueva instancia de puerta de enlace de aplicación

Puede usar la CLI de Azure para habilitar el complemento Controlador de entrada de la puerta de enlace de aplicación (AGIC) para un nuevo clúster de Azure Kubernetes Services (AKS).

En este tutorial, creará un clúster de AKS con el complemento AGIC habilitado. Al crear el clúster, se creará automáticamente una instancia de puerta de enlace de aplicación de Azure que se va a usar. Luego, implementará una aplicación de ejemplo que usará el complemento para exponer la aplicación mediante la puerta de enlace de aplicación.

El complemento proporciona una manera mucho más rápida de implementar AGIC para el clúster de AKS que previamente a través de Helm. También ofrece una experiencia totalmente administrada.

En este tutorial, aprenderá a:

  • Cree un grupo de recursos.
  • Crear un nuevo clúster de AKS con el complemento AGIC habilitado.
  • Implementar una aplicación de ejemplo con AGIC para la entrada en el clúster de AKS.
  • Comprobar que la aplicación es accesible mediante la puerta de enlace de aplicación.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Requisitos previos

Crear un grupo de recursos

En Azure, puede asignar recursos relacionados a un grupo de recursos. Para crear un grupo de recursos, use az group create. En el ejemplo siguiente se crea un grupo de recursos denominado myResourceGroup en la ubicación (región) Este de EE. UU.:

az group create --name myResourceGroup --location eastus

Implementar un clúster de AKS con el complemento habilitado

Ahora implementará un nuevo clúster de AKS con el complemento AGIC habilitado. Si no proporciona una instancia de puerta de enlace de aplicación existente para usarla en este proceso, creará y configurará automáticamente una nueva instancia de puerta de enlace de aplicación para atender el tráfico al clúster de AKS.

Nota

El complemento Controlador de entrada de puerta de enlace de aplicación admite solo las SKU v2 de puerta de enlace de aplicación (Standard y WAF) y no las SKU v1 de puerta de enlace de aplicación. Al implementar una nueva instancia de puerta de enlace de aplicación mediante el complemento AGIC, solo puede implementar una SKU Standard_v2 de puerta de enlace de aplicación. Si desea habilitar el complemento para una SKU de puerta de enlace de aplicación WAF_v2, use cualquiera de estos métodos:

En el ejemplo siguiente, implementará un nuevo clúster de AKS denominado myCluster con Azure CNI e identidades administradas. El complemento AGIC se habilitará en el grupo de recursos que creó, myResourceGroup.

La implementación de un nuevo clúster AKS con el complemento AGIC activado sin especificar una instancia de puerta de enlace de aplicación existente creará automáticamente una instancia de puerta de enlace de aplicación Standard_v2 SKU. Deberá especificar un nombre y un espacio de direcciones de subred para la nueva instancia de Application Gateway. El espacio de direcciones debe ser del prefijo 10.224.0.0/12 que usa la red virtual de AKS sin superponerse con el prefijo 10.224.0.0/16 usado por la subred de AKS. En este tutorial, use myApplicationGateway para el nombre de la puerta de enlace de aplicaciones y 10.225.0.0/16 para su espacio de direcciones de subred.

az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-cidr "10.225.0.0/16" --generate-ssh-keys

[NOTA!] Asegúrese de que la identidad usada por AGIC tiene el permiso Microsoft.Network/virtualNetworks/subnets/join/action delegado en la subred en la que se implementa Application Gateway. Si no se define un rol personalizado con este permiso, puede usar el rol integrado Colaborador de red, que contiene el permiso Microsoft.Network/virtualNetworks/subnets/join/action.

# Get application gateway id from AKS addon profile
appGatewayId=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.config.effectiveApplicationGatewayId")

# Get Application Gateway subnet id
appGatewaySubnetId=$(az network application-gateway show --ids $appGatewayId -o tsv --query "gatewayIpConfigurations[0].subnet.id")

# Get AGIC addon identity
agicAddonIdentity=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.identity.clientId")

# Assign network contributor role to AGIC addon identity to subnet that contains the Application Gateway
az role assignment create --assignee $agicAddonIdentity --scope $appGatewaySubnetId --role "Network Contributor"

Si quiere configurar más parámetros para el comando anterior, consulte az aks create.

Nota

El clúster de AKS que creó aparecerá en el grupo de recursos que creó, myResourceGroup. No obstante, la instancia de puerta de enlace de aplicación creada automáticamente estará en el grupo de recursos del nodo, donde se encuentran los grupos de agentes. El grupo de recursos de nodo se denomina MC_resource-group-name_cluster-name_location de manera predeterminada, pero se puede modificar.

Implementar una aplicación de ejemplo con AGIC

Ahora implementará una aplicación de ejemplo en el clúster de AKS que creó. La aplicación usará el complemento AGIC para la entrada y conectará la instancia de puerta de enlace de aplicación al clúster de AKS.

En primer lugar, obtenga las credenciales para el clúster de AKS con la ejecución del comando az aks get-credentials:

az aks get-credentials -n myCluster -g myResourceGroup

Ahora que tiene las credenciales, ejecute el siguiente comando para configurar una aplicación de ejemplo que use AGIC para la entrada al clúster. AGIC actualizará la instancia de puerta de enlace de aplicación que ha configurado anteriormente con las reglas de enrutamiento correspondientes a la aplicación de ejemplo que está implementando.

kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml 

Comprobación de que la aplicación sea accesible

Ahora que la instancia de puerta de enlace de aplicación está configurada para atender el tráfico al clúster de AKS, vamos a comprobar que la aplicación sea accesible. En primer lugar, obtenga la dirección IP de la entrada:

kubectl get ingress

Para comprobar que la aplicación de ejemplo que creó se ejecute, haga lo siguiente:

  • Visite la dirección IP de la instancia de puerta de enlace de aplicación que ha obtenido al ejecutar el comando anterior.
  • Use curl.

La puerta de enlace de aplicación puede tardar un minuto en obtener la actualización. Si la puerta de enlace de aplicación sigue en el estado Actualizando en el portal, deje que termine antes de intentar llegar a la dirección IP.

Limpieza de recursos

Cuando ya no los necesite, suprima todos los recursos creados en este tutorial mediante la eliminación de los grupos de recursos myResourceGroup y MC_myResourceGroup_myCluster_eastus:

az group delete --name myResourceGroup
az group delete --name MC_myResourceGroup_myCluster_eastus

Pasos siguientes

En este tutorial ha:

  • Creado un nuevo clúster de AKS con el complemento AGIC habilitado
  • Implementado una aplicación de ejemplo con AGIC para la entrada en el clúster de AKS

Para obtener más información sobre AGIC, consulte ¿Qué es el controlador de entrada de Application Gateway? y Deshabilitación y nueva habilitación del complemento AGIC para el clúster de AKS.

Para aprender a habilitar el complemento del controlador de entrada de puerta de enlace de aplicación para un clúster de AKS existente con una puerta de enlace de aplicación existente, vaya al siguiente tutorial.