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
ou192.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
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
Crie um cluster do AKS usando o comando
az aks create
. Passe o parâmetro--network-plugin
com o valor de parâmetronone
.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:
Azure Kubernetes Service