Tutorial: Habilitación del complemento Controlador de entrada de Application Gateway para un clúster de AKS existente con una instancia de Application Gateway existente

Puede usar la CLI de Azure o Azure Portal para habilitar el complemento Controlador de entrada de Application Gateway (AGIC) para un clúster de Azure Kubernetes Services (AKS) existente. En este tutorial, aprenderá a usar el complemento AGIC para exponer su aplicación de Kubernetes en un clúster de AKS existente a través de una instancia de Application Gateway existente implementada en redes virtuales independientes. Comenzaremos por crear un clúster de AKS en una red virtual y una instancia de Application Gateway en una red virtual independiente para simular los recursos existentes. A continuación, habilitará el complemento AGIC, emparejará las dos redes virtuales e implementará una aplicación de ejemplo que se expondrá a través de la instancia de Application Gateway mediante el complemento AGIC. Si va a habilitar el complemento AGIC para una instancia de Application Gateway existente un clúster de AKS existente en la misma red virtual, puede omitir el paso de emparejamiento que aparece a continuación. El complemento proporciona una manera mucho más rápida de implementar AGIC para el clúster de AKS que cuando se hacía previamente a través de Helm y también ofrece una experiencia totalmente administrada.

En este tutorial, aprenderá a:

  • Crear un grupo de recursos
  • Creación de un clúster de AKS
  • Crear una nueva instancia de Application Gateway
  • Habilitar el complemento AGIC en el clúster de AKS existente a través de la CLI de Azure
  • Habilitar el complemento AGIC para un clúster de AKS existente a través de Azure Portal
  • Emparejar la red virtual de Application Gateway con la red virtual del clúster de AKS
  • Implementar una aplicación de ejemplo mediante AGIC para la entrada en el clúster de AKS
  • Comprobar que la aplicación es accesible a través de Application Gateway

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

Requisitos previos

  • Use el entorno de Bash en Azure Cloud Shell.

    Iniciar Cloud Shell en una nueva ventana

  • Si lo prefiere, instale la CLI de Azure para ejecutar sus comandos de referencia.

    • Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.

    • Cuando se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.

    • Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.

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 canadacentral (región).

az group create --name myResourceGroup --location canadacentral

Implementación de un clúster de AKS

Ahora implementará un nuevo clúster de AKS para simular un clúster de AKS existente para el que quiere habilitar el complemento AGIC.

En el ejemplo siguiente, va a implementar un nuevo clúster de AKS denominado myCluster mediante Azure CNI e identidades administradas en el grupo de recursos que creó, myResourceGroup.

az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity 

Para configurar parámetros adicionales para el comando az aks create, consulte las referencias de este vínculo.

Implementación de una nueva instancia de Application Gateway

Ahora implementará una nueva instancia de Application Gateway para simular una instancia de Application Gateway existente que quiera usar para equilibrar la carga del tráfico en el clúster de AKS, myCluster. El nombre de la instancia de Application Gateway será myApplicationGateway, pero tendrá que crear primero un recurso de dirección IP pública, denominado myPublicIp, y una nueva red virtual denominada myVnet con el espacio de direcciones 11.0.0.0/8 y una subred con el espacio de direcciones 11.1.0.0/16 llamada mySubnet e implementar la instancia de Application Gateway en mySubnet con myPublicIp.

Cuando se usa un clúster de AKS y una instancia de Application Gateway en redes virtuales independientes, los espacios de direcciones de las dos redes virtuales no deben superponerse. El espacio de direcciones predeterminado que implementa un clúster de AKS es 10.0.0.0/8, por lo que establecemos el prefijo de dirección de red virtual de la instancia de Application Gateway en 11.0.0.0/8.

az network public-ip create -n myPublicIp -g MyResourceGroup --allocation-method Static --sku Standard
az network vnet create -n myVnet -g myResourceGroup --address-prefix 11.0.0.0/8 --subnet-name mySubnet --subnet-prefix 11.1.0.0/16 
az network application-gateway create -n myApplicationGateway -l canadacentral -g myResourceGroup --sku Standard_v2 --public-ip-address myPublicIp --vnet-name myVnet --subnet mySubnet

Nota

El complemento del controlador de entrada de Application Gateway (AGIC) admite solo las SKU de Application Gateway v2 (estándar y WAF) y no las SKU de Application Gateway v1.

Habilitación del complemento AGIC en un clúster de AKS existente a través de la CLI de Azure

Si quiere seguir usando la CLI de Azure, puede seguir habilitando el complemento AGIC en el clúster de AKS que creó, myCluster, y especificar el complemento AGIC para usar la instancia de Application Gateway existente que creó, myApplicationGateway.

appgwId=$(az network application-gateway show -n myApplicationGateway -g myResourceGroup -o tsv --query "id") 
az aks enable-addons -n myCluster -g myResourceGroup -a ingress-appgw --appgw-id $appgwId

Habilitación del complemento AGIC para un clúster de AKS existente a través de Azure Portal

Si desea usar Azure Portal para habilitar el complemento AGIC, vaya a (https://aka.ms/azure/portal/aks/agic) y navegue hasta el clúster de AKS a través del vínculo de Azure Portal. Desde allí, vaya a la pestaña Redes del clúster de AKS. Verá la sección del controlador de entrada de Application Gateway, que le permite habilitar o deshabilitar el complemento de controlador de entrada mediante la interfaz de usuario de Azure Portal. Active la casilla situada junto a "Enable ingress controller" (Habilitar el controlador de entrada) y seleccione la instancia de Application Gateway que creó, myApplicationGateway en el menú desplegable.

Portal del controlador de entrada de Application Gateway

<a name="peer-the-two-virtual-networks-together">Emparejamiento de dos redes virtuales juntas

Dado que hemos implementado el clúster de AKS en su propia red virtual y la instancia de Application Gateway en otra red virtual, deberá emparejar las dos redes virtuales juntas para que el tráfico fluya de la instancia de Application Gateway a los pods del clúster. Emparejar las dos redes virtuales requiere ejecutar el comando de la CLI de Azure dos veces independientes para asegurarse de que la conexión sea bidireccional. El primer comando creará una conexión de emparejamiento desde la red virtual de Application Gateway a la red virtual de AKS; el segundo comando creará una conexión de emparejamiento en la otra dirección.

nodeResourceGroup=$(az aks show -n myCluster -g myResourceGroup -o tsv --query &quot;nodeResourceGroup")
aksVnetName=$(az network vnet list -g $nodeResourceGroup -o tsv --query "[0].name")

aksVnetId=$(az network vnet show -n $aksVnetName -g $nodeResourceGroup -o tsv --query "id")
az network vnet peering create -n AppGWtoAKSVnetPeering -g myResourceGroup --vnet-name myVnet --remote-vnet $aksVnetId --allow-vnet-access

appGWVnetId=$(az network vnet show -n myVnet -g myResourceGroup -o tsv --query "id")
az network vnet peering create -n AKStoAppGWVnetPeering -g $nodeResourceGroup --vnet-name $aksVnetName --remote-vnet $appGWVnetId --allow-vnet-access

Implementación de una aplicación de ejemplo mediante AGIC

Ahora implementará una aplicación de ejemplo en el clúster de AKS creado que usará el complemento AGIC para la entrada y conectará la instancia de Application Gateway al clúster de AKS. En primer lugar, obtendrá las credenciales para el clúster de AKS que implementó mediante la ejecución del comando az aks get-credentials.

az aks get-credentials -n myCluster -g myResourceGroup

Una vez que tiene las credenciales para el clúster que creó, 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 Application Gateway que configuró anteriormente con las reglas de enrutamiento correspondientes a la nueva aplicación de ejemplo que implementó.

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 Application Gateway está configurada para enviar el tráfico al clúster de AKS, vamos a comprobar que la aplicación sea accesible. Primero, obtenga la dirección IP de la entrada.

kubectl get ingress

Compruebe que la aplicación de ejemplo que ha creado está en funcionamiento; para ello, visite la dirección IP de la instancia de Application Gateway que obtuvo al ejecutar el comando anterior o consulte curl. Application Gateway puede tardar un minuto en obtener la actualización, por lo que si su instancia de Application Gateway todavía está en el estado "Actualizando" en el portal, permita que finalice antes de intentar conectarse a la dirección IP.

Limpieza de recursos

Cuando ya no los necesite, quite el grupo de recursos, la puerta de enlace de aplicaciones y todos los recursos relacionados.

az group delete --name myResourceGroup 

Pasos siguientes