Utilice su propio complemento de interfaz de red de contenedor (CNI) con Azure Kubernetes Service (AKS)
Kubernetes no proporciona un sistema de interfaz de red de manera predeterminada. En su lugar, los complementos de red proporcionan esta funcionalidad. Azure Kubernetes Service (AKS) proporciona varios complementos de CNI compatibles. Para obtener información sobre los complementos compatibles, consulte los conceptos de redes de AKS.
Los complementos admitidos satisfacen la mayoría de las necesidades de red en Kubernetes. Sin embargo, es posible que los usuarios avanzados de AKS quieran el mismo complemento de CNI que se usa en entornos de Kubernetes locales o usar funcionalidades avanzadas disponibles en otros complementos de CNI.
En este artículo se muestra cómo implementar un clúster de AKS sin ningún complemento de CNI preinstalado. Desde allí, puede instalar cualquier complemento de CNI de terceros que funcione en Azure.
El soporte técnico de Microsoft no puede ayudar con problemas relacionados con CNI en los clústeres implementados con Traiga su propia interfaz de red de contenedor (BYOCNI). Por ejemplo, los problemas relacionados con CNI cubrirían la mayoría del tráfico de este/oeste (pod a pod), junto con kubectl proxy
y con comandos similares. Si desea compatibilidad relacionada con CNI, use un complemento de red de AKS compatible o busque soporte técnico del proveedor de terceros del complemento BYOCNI.
Se sigue proporcionando soporte técnico para problemas no relacionados con CNI.
- Para Azure Resource Manager (ARM) o Bicep, use al menos la versión de plantilla 2022-01-02-preview o 2022-06-01.
- Para la CLI de Azure, use al menos la versión 2.39.0.
- La red virtual del clúster AKS debe permitir la conectividad saliente de Internet.
- Los clústeres de AKS no pueden usar
169.254.0.0/16
,172.30.0.0/16
,172.31.0.0/16
ni192.0.2.0/24
para el intervalo de direcciones del servicio de Kubernetes, el intervalo de direcciones de pod, o el intervalo de direcciones de la red virtual del clúster. - La identidad de clúster que usa el clúster de AKS debe tener como mínimo permisos de Colaborador de la red en la subred de la red virtual. Si quiere definir un rol personalizado en lugar de usar el rol integrado de colaborador de red, se requieren los permisos siguientes:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
- La subred asignada al grupo de nodos AKS no puede ser una subred delegada.
- AKS no aplica grupos de seguridad de red (NSG) a su subred ni modifica ninguno de los grupos de seguridad de red asociados a esa subred. Si proporciona su propia subred y agrega grupos de seguridad de red asociados a ella, debe asegurarse de que las reglas de seguridad de los NSG permiten el tráfico entre dentro del rango CIDR del nodo. Para más información, consulteGrupo de seguridad de red.
Cree un grupo de recursos de Azure para el clúster de AKS mediante el comando
az group create
.az group create --location eastus --name myResourceGroup
Cree un clúster de AKS con el comando
az aks create
. Pase el parámetro--network-plugin
con el valor de parámetro denone
.az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --generate-ssh-keys
Una vez completado el aprovisionamiento de AKS, el clúster está en línea, pero todos los nodos están en un estado NotReady
, como se muestra en el ejemplo siguiente:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-23902496-vmss000000 NotReady agent 6m9s v1.21.9
$ kubectl get node -o custom-columns='NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].message'
NAME STATUS
aks-nodepool1-23902496-vmss000000 container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized
En este momento, el clúster está listo para la instalación de un complemento CNI.
Más información acerca de las redes en AKS en los siguientes artículos:
Comentarios de Azure Kubernetes Service
Azure Kubernetes Service es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: