Partekatu honen bidez:


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.

Soporte técnico

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.

Requisitos previos

  • 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 ni 192.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.

Creación de un clúster de AKS sin ningún complemento de CNI preinstalado

  1. 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
    
  2. Cree un clúster de AKS con el comando az aks create. Pase el parámetro --network-plugin con el valor de parámetro de none.

    az aks create \
        --location eastus \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --network-plugin none \
        --generate-ssh-keys
    

Implementación de un complemento CNI

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.

Pasos siguientes

Más información acerca de las redes en AKS en los siguientes artículos: