Traga seu próprio plug-in CNI (Container Network Interface) com o Serviço Kubernetes do Azure (AKS)
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 Kubernetes do Azure (AKS) fornece vários plug-ins CNI suportados. Para obter informações sobre plugins suportados, consulte os conceitos de rede AKS.
Os plugins suportados 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.
Este artigo mostra como implantar um cluster AKS sem 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 Bring your own Container Network Interface (BYOCNI). Por exemplo, questões relacionadas à CNI cobririam a maior parte do tráfego leste/oeste (pod to pod), juntamente com kubectl proxy
comandos semelhantes. Se você quiser suporte relacionado ao CNI, use um plug-in de rede AKS suportado ou procure suporte do fornecedor terceirizado do plug-in BYOCNI.
Ainda há suporte para questões não relacionadas à CNI.
Pré-requisitos
- Para o Azure Resource Manager (ARM) ou Bicep, use pelo menos a versão do 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 para o cluster AKS deve permitir conectividade de saída com a Internet.
- Os clusters AKS não podem 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 de serviço Kubernetes, intervalo de endereços pod ou intervalo de endereços de rede virtual de cluster. - A identidade do cluster usada pelo cluster AKS deve ter pelo menos permissões de Colaborador de Rede na sub-rede dentro da sua rede virtual. Se você deseja definir uma função personalizada em vez de usar a função interna de Colaborador de Rede, as seguintes permissões são necessárias:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
- A sub-rede atribuída ao pool de nós AKS não pode ser uma sub-rede delegada.
- O AKS não aplica Grupos de Segurança de Rede (NSGs) à sua sub-rede nem modifica nenhum dos NSGs associados a essa sub-rede. Se você fornecer sua própria sub-rede e adicionar NSGs associados a essa sub-rede, deverá garantir que as regras de segurança nos NSGs permitam o tráfego dentro do intervalo CIDR do nó. Para obter mais informações, consulte Grupos de segurança de rede.
Crie um cluster AKS sem plug-in CNI pré-instalado
Crie um grupo de recursos do Azure para seu cluster AKS usando o
az group create
comando.az group create --location eastus --name myResourceGroup
Crie um cluster AKS usando o
az aks create
comando. Passe o--network-plugin
parâmetro com o valor do parâmetro denone
.az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --generate-ssh-keys
Implantar um plug-in CNI
Quando o provisionamento do AKS for concluído, o cluster estará online, mas todos os nós estarão em um NotReady
estado, 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 CNI.
Próximos passos
Saiba mais sobre redes no AKS nos seguintes artigos:
Azure Kubernetes Service