Partilhar via


Trazer um plug-in próprio de CNI (Adaptador de Rede de Contêiner) com o AKS (Serviço de Kubernetes do Azure)

O Kubernetes não fornece um sistema de interface de rede por padrão. Em vez disso, os plug-ins de rede fornecem essa funcionalidade. O Serviço de Kubernetes do Azure fornece vários plug-ins CNI compatíveis. Para obter informações sobre plug-ins compatíveis consulte os Conceitos de rede do AKS.

Os plug-ins compatíveis atendem à maioria das necessidades de rede no Kubernetes. No entanto, os usuários avançados do AKS podem querer o mesmo plug-in CNI usado em ambientes Kubernetes locais ou usar funcionalidades avançadas disponíveis em outros plug-ins CNI.

Esse artigo mostra como implantar um cluster do AKS sem um plug-in CNI pré-instalado. A partir daí, você pode instalar qualquer plug-in CNI de terceiros que funcione no Azure.

Suporte

O suporte da Microsoft não pode ajudar com problemas relacionados à CNI em clusters implantados com Interface de Rede de Contêiner (BYOCNI). Por exemplo, os problemas relacionados ao CNI abrangem a maioria do tráfego de leste/oeste (pod a pod), com kubectl proxy e comandos semelhantes. Se você quiser suporte relacionado à CNI, use um plug-in de rede do AKS com suporte ou busque suporte do fornecedor de terceiros do plug-in BYOCNI.

O suporte ainda será fornecido para problemas não relacionados ao CNI.

Pré-requisitos

  • Para o Azure Resource Manager (ARM) ou o Bicep, use pelo menos a versão de modelo 2022-01-02-preview ou 2022-06-01.
  • Para a CLI do Azure, use pelo menos a versão 2.39.0
  • A rede virtual do cluster do AKS deve permitir conectividade com a Internet de saída.
  • Os clusters do AKS podem não usar 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 ou 192.0.2.0/24 para o intervalo de endereços do serviço do Kubernetes, o intervalo de endereços do pod ou o intervalo de endereços da rede virtual do cluster.
  • A identidade do cluster usada pelo cluster do AKS deve ter pelo menos permissões de Colaborador de Rede na sub-rede na rede virtual. Se você quiser definir uma função personalizada em vez de usar a função de Colaborador de Rede interna, as seguintes permissões serão necessárias:
    • Microsoft.Network/virtualNetworks/subnets/join/action
    • Microsoft.Network/virtualNetworks/subnets/read
  • A sub-rede atribuída ao pool de nós do AKS não pode ser uma sub-rede delegada.
  • O AKS não aplica grupos de segurança de rede (NSGs) à sub-rede e não muda nenhum dos NSGs associados a essa sub-rede. Se você fornecer sua própria sub-rede e adicionar os NSGs associados a ela, verifique se as regras de segurança nos NSGs permitem o tráfego dentro do intervalo de CIDR do nó. Para saber mais, confira Grupos de segurança de rede.

Criar um cluster do AKS sem nenhum plug-in CNI pré-instalado

  1. Crie um grupo de recursos do Azure para o cluster do AKS por meio do comando az group create.

    az group create --location eastus --name myResourceGroup
    
  2. Crie um cluster do AKS usando o comando az aks create. Passe o parâmetro --network-plugin com o valor de parâmetro none.

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

Implantar um plug-in de CNI

Depois que o provisionamento do AKS for concluído, o cluster estará online, mas todos os nós estarão em um estado NotReady, conforme mostrado no exemplo a seguir:

  $ 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

Neste ponto, o cluster está pronto para a instalação de um plug-in de CNI.

Próximas etapas

Saiba mais sobre a rede no AKS nos seguintes artigos: