Atualizar os modos IPAM do Serviço Kubernetes do Azure (AKS) e a Tecnologia Dataplane
Como sempre há novos modos de gerenciamento de atribuição de IP (IPAM) e tecnologia de plano de dados com suporte ao Serviço Kubernetes do Azure (AKS), é inevitável passar por situações em que os clusters AKS existentes precisam atualizar para modos IPAM e tecnologia de dataplane mais recentes para acessar os recursos e a capacidade de suporte mais recentes. Este artigo fornece orientação sobre como atualizar um cluster AKS existente para usar a sobreposição CNI do Azure para o modo IPAM e o Azure CNI alimentado pela Cilium como seu plano de dados.
Atualizar um cluster existente para o Azure CNI Overlay
Nota
Você pode atualizar um cluster CNI do Azure existente para Sobreposição se o cluster atender aos seguintes critérios:
- O cluster está no Kubernetes versão 1.22+.
- Não usa o recurso de alocação de IP do pod dinâmico.
- Não tem políticas de rede habilitadas. O mecanismo de Política de Rede pode ser desinstalado antes da atualização, consulte Desinstalar o Azure Network Policy Manager ou o Calico.
- Não usa nenhum pool de nós do Windows com docker como tempo de execução do contêiner.
Nota
A atualização de um cluster existente para a Sobreposição CNI é um processo não reversível.
Aviso
Antes do Windows OS Build 20348.1668, havia uma limitação em torno dos pods de sobreposição do Windows incorretamente SNATing pacotes de pods de rede host, o que tinha um efeito mais prejudicial para clusters atualizando para Overlay. Para evitar esse problema, use a compilação do sistema operacional Windows maior ou igual a 20348.1668.
Aviso
Se estiver usando uma configuração personalizada azure-ip-masq-agent para incluir intervalos de IP adicionais que não devem pacotes SNAT de pods, atualizar para a sobreposição CNI do Azure pode interromper a conectividade com esses intervalos. Os IPs de pod do espaço de sobreposição não serão acessíveis por nada fora dos nós do cluster.
Além disso, para clusters suficientemente antigos, pode haver um ConfigMap remanescente de uma versão anterior do azure-ip-masq-agent. Se esse ConfigMap, chamado azure-ip-masq-agent-config
, existir e não estiver intencionalmente no local, ele deverá ser excluído antes de executar o comando update.
Se não estiver usando uma configuração personalizada do ip-masq-agent, somente o azure-ip-masq-agent-config-reconciled
ConfigMap deverá existir em relação ao Azure ip-masq-agent ConfigMaps e isso será atualizado automaticamente durante o processo de atualização.
O processo de atualização aciona cada pool de nós para ser recriado simultaneamente. Não há suporte para a atualização de cada pool de nós separadamente para Overlay. Quaisquer interrupções na rede de cluster são semelhantes a uma atualização de imagem de nó ou atualização de versão do Kubernetes, em que cada nó em um pool de nós é recriado.
Atualização do Cluster CNI do Azure
Atualize um cluster CNI do Azure existente para usar a sobreposição usando o comando [az aks update
][az-aks-update].
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16
O --pod-cidr
parâmetro é necessário ao atualizar da CNI herdada porque os pods precisam obter IPs de um novo espaço de sobreposição, que não se sobrepõe à sub-rede de nó existente. O CIDR do pod também não pode se sobrepor a nenhum endereço VNet dos pools de nós. Por exemplo, se o endereço da rede virtual for 10.0.0.0/8 e os nós estiverem na sub-rede 10.240.0.0/16, o --pod-cidr
não poderá se sobrepor ao 10.0.0.0/8 ou ao CIDR de serviço existente no cluster.
Atualização do Kubenet Cluster
Atualize um cluster Kubenet existente para usar a Sobreposição CNI do Azure usando o comando [az aks update
][az-aks-update].
clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"
az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay
Como o cluster já está usando um CIDR privado para pods que não se sobrepõe ao espaço IP da VNet, você não precisa especificar o --pod-cidr
parâmetro e o Pod CIDR permanecerá o mesmo se o parâmetro não for usado.
Nota
Ao atualizar de Kubenet para CNI Overlay, a tabela de rotas não será mais necessária para roteamento de pod. Se o cluster estiver usando uma tabela de rotas fornecida pelo cliente, as rotas que estavam sendo usadas para direcionar o tráfego do pod para o nó correto serão excluídas automaticamente durante a operação de migração. Se o cluster estiver usando uma tabela de rotas gerenciada (a tabela de rotas foi criada pelo AKS e vive no grupo de recursos do nó), essa tabela de rotas será excluída como parte da migração.
Atualizar um cluster existente para o Azure CNI Powered by Cilium
Nota
Você pode atualizar um cluster existente para o Azure CNI Powered by Cilium se o cluster atender aos seguintes critérios:
- O cluster usa a sobreposição CNI do Azure ou a CNI do Azure com alocação de IP dinâmica. Isso não inclui o Azure CNI.
- O cluster não tem nenhum pool de nós do Windows.
Nota
Ao habilitar o Cilium em um cluster com um mecanismo de política de rede diferente (Azure NPM ou Calico), o mecanismo de diretiva de rede será desinstalado e substituído pelo Cilium. Consulte Desinstalar o Azure Network Policy Manager ou o Calico para obter mais detalhes.
Aviso
O processo de atualização aciona cada pool de nós para ser recriado simultaneamente. Não há suporte para a atualização de cada pool de nós separadamente. Quaisquer interrupções na rede de cluster são semelhantes a uma atualização de imagem de nó ou atualização de versão do Kubernetes, em que cada nó em um pool de nós é recriado. O Cilium começará a aplicar políticas de rede somente depois que todos os nós tiverem sido recriados.
Para executar a atualização, você precisará da CLI do Azure versão 2.52.0 ou posterior. Execute az --version
para ver a versão atualmente instalada. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Use o comando a seguir para atualizar um cluster existente para o Azure CNI Powered by Cilium. Substitua os valores de <clusterName>
e <resourceGroupName>
:
az aks update --name <clusterName> --resource-group <resourceGroupName> \
--network-dataplane cilium
Azure Kubernetes Service