Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica el proceso de configuración, la configuración de redes de doble pila y una implementación de carga de trabajo de ejemplo para la superposición de Azure CNI en clústeres de Azure Kubernetes Service (AKS). Para obtener información general sobre las redes de superposición de Azure CNI, consulte Introducción a las redes de superposición de Azure CNI en Azure Kubernetes Service (AKS).
Importante
A partir del 30 de noviembre de 2025, Azure Kubernetes Service (AKS) ya no admite ni proporciona actualizaciones de seguridad para Azure Linux 2.0. La imagen de nodo de Linux 2.0 de Azure está congelada en la versión 202512.06.0. A partir del 31 de marzo de 2026, se quitarán las imágenes de nodo y no podrá escalar los grupos de nodos. Migre a una versión compatible de Azure Linux mediante la actualización de los grupos de nodos a una versión de Kubernetes compatible o la migración a osSku AzureLinux3. Para más información, consulte el asunto de retirada de GitHub y el anuncio sobre la retirada de actualizaciones de Azure. Para mantenerse informado sobre los anuncios y actualizaciones, siga las notas de lanzamiento de AKS.
Requisitos previos
- Una suscripción de Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Cli de Azure versión 2.48.0 o posterior. Para instalar o actualizar la CLI de Azure, consulte Instalación de la CLI de Azure.
- Un grupo de recursos de Azure existente. Si necesita crear uno, consulte Creación de grupos de recursos.
- Si trae su propia red virtual, revise los requisitos previos de la red virtual.
Para las redes de doble pila, use una versión de Kubernetes compatible en AKS que esté disponible en su región.
Parámetros clave para clústeres de superposición de Azure CNI de AKS
En la tabla siguiente se describen los parámetros clave para configurar redes de superposición de Azure CNI en clústeres de AKS:
| Parámetro | Description |
|---|---|
--network-plugin |
Establézcalo en azure para usar la interfaz de red de contenedores (CNI) de Azure. |
--network-plugin-mode |
Establézcalo en overlay para habilitar las redes de superposición de Azure CNI. Esta configuración solo se aplica cuando --network-plugin=azure. |
--pod-cidr |
Especifique un bloque de enrutamiento de interdominios sin clases (CIDR) personalizado del pod para el clúster. El valor predeterminado es 10.244.0.0/16. |
El comportamiento predeterminado de los complementos de red depende de si establece --network-pluginexplícitamente :
- Si no especifica
--network-plugin, AKS tiene como valor predeterminado Azure CNI Overlay. - Si indica
--network-plugin=azurey omite--network-plugin-mode, AKS usará intencionadamente el modo de red virtual (subred de nodo) para tener compatibilidad con versiones anteriores.
Creación de un clúster de superposición de Azure CNI de AKS
Cree un clúster AKS de Azure CNI Overlay mediante el comando az aks create con --network-plugin=azure y --network-plugin-mode=overlay. Si no especifica un valor para --pod-cidr, AKS asigna el valor predeterminado de 10.244.0.0/16.
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--location $REGION \
--network-plugin azure \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16 \
--generate-ssh-keys
Adición de un nuevo grupo de nodos a una subred dedicada
Agregue un grupo de nodos a una subred diferente dentro de la misma red virtual para controlar las direcciones IP del nodo de máquina virtual (VM) para el tráfico de red a la red virtual o a los recursos de red virtual emparejados.
Agregue un nuevo grupo de nodos al clúster mediante el az aks nodepool add comando y especifique el identificador de recurso de subred con el --vnet-subnet-id parámetro . Por ejemplo:
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NODE_POOL_NAME \
--node-count 1 \
--mode system \
--vnet-subnet-id $SUBNET_RESOURCE_ID
Acerca de los clústeres de superposición de Azure CNI de AKS con redes de doble pila
Puede implementar sus clústeres de superposición de Azure CNI de AKS en modo de doble pila con una red virtual de Azure. En esta configuración, los nodos reciben una dirección IPv4 y una IPv6 de la subred de la red virtual de Azure. Los pods reciben una dirección IPv4 y una IPv6 de un espacio de direcciones distinto a la subred de red virtual de Azure de los nodos. A continuación, se configura la traducción de direcciones de red (NAT) para que los pods puedan acceder a los recursos en la red virtual de Azure. La dirección IP de origen del tráfico es NAT'd a la dirección IP principal del nodo de máquina virtual de la misma familia (IPv4 a IPv4 e IPv6 a IPv6).
Nota:
También puede implementar clústeres de redes de doble pila mediante Azure CNI Powered by Cilium. Para más información, consulte Redes de doble pila con Azure CNI Powered by Cilium.
Limitaciones de redes de pila doble
Las siguientes características no se admiten con las redes de pila doble:
- Directivas de red de Azure
- Directivas de red de Calico
- Puerta de enlace NAT estándar, que solo admite IPv4. Para la salida de doble pila, use StandardV2 NAT Gateway. El tipo de salida administrado por
managedNATGatewayV2AKS está en versión preliminar. Antes de usar StandardV2, revise sus limitaciones conocidas y la disponibilidad regional y los problemas conocidos. Para obtener instrucciones de configuración, consulte Creación de una puerta de enlace NAT administrada o asignada por el usuario para el clúster de AKS. - Complemento de nodos virtuales
Parámetros clave para redes de doble pila
En la tabla siguiente se describen los parámetros clave para configurar redes de doble pila en clústeres de superposición de Azure CNI de AKS:
| Parámetro | Description |
|---|---|
--ip-families |
Toma una lista separada por comas de las familias de IP para habilitarlas en el clúster. Solo ipv4 y ipv4,ipv6 son compatibles. |
--pod-cidrs |
Toma una lista separada por comas de intervalos IP de notación de enrutamiento de interdominios sin clases (CIDR) para asignar direcciones IP a los pods. La cantidad y el orden de los intervalos de esta lista debe coincidir con el valor que se proporciona a --ip-families. Si no proporciona ningún valor, el parámetro usa el valor predeterminado de 10.244.0.0/16,fd12:3456:789a::/64. |
--service-cidrs |
Toma una lista de intervalos IP de notación CIDR separados por comas desde donde asignar direcciones IP de los servicios. La cantidad y el orden de los intervalos de esta lista debe coincidir con el valor que se proporciona a --ip-families. Si no proporciona ningún valor, el parámetro usa el valor predeterminado de 10.0.0.0/16,fd12:3456:789a:1::/108. La subred IPv6 asignada a --service-cidrs no puede ser mayor que /108. |
Creación de un clúster de AKS de superposición de CNI de Azure pila doble (Linux)
Cree un grupo de recursos de Azure para el clúster mediante el
az group createcomando :az group create --location $REGION --name $RESOURCE_GROUPCree un clúster de AKS de doble pila mediante el comando
az aks createcon el parámetro--ip-familiesestablecido enipv4,ipv6.az aks create \ --location $REGION \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --network-plugin azure \ --network-plugin-mode overlay \ --ip-families ipv4,ipv6 \ --generate-ssh-keys
Creación de un clúster de AKS de superposición de CNI de Azure pila doble (Windows)
Cree un clúster con Azure CNI Overlay mediante el comando
az aks create.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --location $REGION \ --network-plugin azure \ --network-plugin-mode overlay \ --ip-families ipv4,ipv6 \ --generate-ssh-keysAgregue un grupo de nodos de Windows al clúster mediante el
az aks nodepool addcomando :az aks nodepool add \ --resource-group $RESOURCE_GROUP \ --cluster-name $CLUSTER_NAME \ --os-type Windows \ --name $WINDOWS_NODE_POOL_NAME \ --node-count 2
Despliegue una carga de trabajo de ejemplo en el clúster AKS de Azure CNI Overlay
Implementen clústeres de CNI Overlay de AKS de doble pila con direcciones IPv4/IPv6 en nodos de máquinas virtuales. En este ejemplo se implementa un servidor web NGINX y se expone usando un servicio LoadBalancer con direcciones IPv4 e IPv6.
Antes de exponer la carga de trabajo, asegúrese de que se ejecuta una implementación de NGINX en el clúster. Si aún no tiene una, cree la implementación y espere a que esté lista mediante los siguientes comandos:
kubectl create deployment nginx --image=nginx
kubectl rollout status deployment/nginx
Nota:
Se recomienda usar el complemento de enrutamiento de aplicaciones para la entrada en clústeres de AKS. Sin embargo, con fines de demostración, en este ejemplo se implementa un servidor web NGINX sin el complemento de enrutamiento de aplicaciones. Para obtener más información sobre el complemento, consulte Ingreso NGINX administrado con el complemento de enrutamiento de aplicaciones.
Exponer la carga de trabajo mediante un LoadBalancer servicio
Exponga la implementación de NGINX mediante los comandos de kubectl o los manifiestos YAML.
En esta sección se supone que una implementación de NGINX denominada nginx se ejecuta en el clúster. Para comprobar que la implementación existe y está lista, ejecute kubectl get deployment nginx y confirme que la columna READY muestra todas las réplicas deseadas como listas.
Importante
Actualmente hay dos limitaciones relacionadas con los servicios IPv6 en AKS:
- Azure Load Balancer envía sondeos de estado a los destinos IPv6 desde una dirección local de vínculo. En los grupos de nodos de Linux de Azure, no puede enrutar este tráfico a un pod, por lo que el tráfico dirigido a los servicios IPv6 implementados con
externalTrafficPolicy: Clusterfalla. - Debe implementar servicios IPv6 con
externalTrafficPolicy: Local, lo que provoca quekube-proxyresponda al sondeo en el nodo.
Exponga la implementación de NGINX mediante el
kubectl expose deployment nginxcomando . El primer comando crea un servicio IPv4LoadBalancer. El segundo comando crea un servicio IPv6LoadBalancery usa el--overridesjson para estableceripFamiliesIPv6en y el requeridoexternalTrafficPolicyenLocal:kubectl expose deployment nginx --name=nginx-ipv4 --port=80 --type=LoadBalancer kubectl expose deployment nginx --name=nginx-ipv6 --port=80 --type=LoadBalancer --overrides='{"spec":{"externalTrafficPolicy":"Local","ipFamilies":["IPv6"]}}'La salida debe mostrar los servicios expuestos. Por ejemplo:
service/nginx-ipv4 exposed service/nginx-ipv6 exposedUna vez expuesta la implementación y los
LoadBalancerservicios están completamente aprovisionados, obtenga las direcciones IP de los servicios mediante elkubectl get servicescomando :kubectl get servicesLa salida debe mostrar los servicios con sus direcciones IP asignadas. Por ejemplo:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ipv4 LoadBalancer 10.0.88.78 20.46.24.24 80:30652/TCP 97s nginx-ipv6 LoadBalancer fd12:3456:789a:1::981a 2603:1030:8:5::2d 80:32002/TCP 63sObtenga la dirección IP del servicio mediante el
kubectl get servicescomando y establézcala en una variable de entorno:El comando usa la expresión
{.status.loadBalancer.ingress[0].ip}JSONPath para extraer la dirección IP externa de la primera entrada del campo de entrada del equilibrador de carga del servicio y almacenarla en laSERVICE_IPvariable .SERVICE_IP=$(kubectl get services nginx-ipv6 -o jsonpath='{.status.loadBalancer.ingress[0].ip}')Compruebe la funcionalidad mediante una
curlsolicitud de un host compatible con IPv6. (Azure Cloud Shell no es compatible con IPv6).curl -s "http://[${SERVICE_IP}]" | head -n5La salida debe mostrar el CÓDIGO HTML de la página principal de NGINX. Por ejemplo:
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style>
Contenido relacionado
Para más información sobre las redes de superposición de Azure CNI en AKS, consulte los siguientes artículos: