Atualizar os modos IPAM e a tecnologia de Plano de dados do Serviço de Kubernetes do Azure (AKS)
Como sempre há novos modos de gerenciamento de atribuição de IP (IPAM) e tecnologia de Plano de dados que dão suporte ao Serviço de Kubernetes do Azure (AKS), é inevitável enfrentar situações em que clusters do AKS existentes precisam ser atualizados para modos IPAM e tecnologia de Plano de dados mais recentes para acessar os recursos e a capacidade de suporte mais recentes. Este artigo fornece diretrizes sobre como atualizar um cluster do AKS existente para usar a sobreposição da CNI do Azure para o modo IPAM e a CNI do Azure da plataforma Cilium como seu Plano de dados.
Atualizar um cluster existente para Sobreposição da CNI do Azure
Observação
Você pode atualizar um cluster existente de CNI do Azure para Sobreposição se o cluster atender aos seguintes critérios:
- O cluster está no Kubernetes versão 1.22 ou superior.
- Não usa o recurso de alocação de IP de 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, confira Desinstalar o Gerenciador de Políticas de Rede do Azure ou Calico.
- Não usa nenhum pool de nós do Windows com o docker como o runtime do contêiner.
Observação
Atualizar um cluster existente para a Sobreposição de CNI é um processo não reversível.
Aviso
Antes do build 20348.1668 do sistema operacional Windows, havia limitação em torno de pods de sobreposição do Windows que executam incorretamente o SNAT dos pacotes de pods da rede do host, que teve um efeito mais prejudicial na atualização de clusters para Sobreposição. Para evitar esse problema, use o build do sistema operacional Windows maior ou igual a 20348.1668.
Aviso
Se estiver usando uma configuração azure-ip-masq-agent personalizada para incluir intervalos de IP adicionais que não devem ser pacotes SNAT de pods, a atualização para a Sobreposição de CNI do Azure poderá interromper a conectividade com esses intervalos. Os IPs de pod do espaço de sobreposição não poderão ser acessados por nada fora dos nós do cluster.
Além disso, para clusters suficientemente antigos, pode haver um ConfigMap que sobrou de uma versão anterior de 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 de atualização.
Se não estiver usando uma configuração personalizada de ip-masq-agent, somente o ConfigMap azure-ip-masq-agent-config-reconciled
deverá existir em relação ao ConfigMaps ip-masq-agent do Azure, e isso será atualizado automaticamente durante o processo de atualização.
O processo de atualização dispara cada pool de nós a ter a imagem recriada simultaneamente. Não há suporte para atualizar cada pool de nós separadamente para Sobreposição. Todas as interrupções de rede de cluster são semelhantes a uma atualização de imagem de nó ou atualização da versão do Kubernetes, onde uma nova imagem é criada de cada nó em um pool de nós.
Upgrade de cluster da 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 parâmetro --pod-cidr
é 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 VNet 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 a 10.0.0.0/8 ou ao CIDR de serviço existente no cluster.
Upgrade de cluster do Kubenet
Atualize um cluster Kubenet existente para usar a Sobreposição da 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 uma CIDR privada para pods que não se sobrepõem ao espaço IP da VNet, você não precisa especificar o parâmetro --pod-cidr
, e o CIDR do Pod permanecerá o mesmo se o parâmetro não for usado.
Observação
Ao atualizar do Kubenet para a Sobreposição de CNI, 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 de 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 gerenciadas (a tabela de rotas foi criada pelo AKS e reside no grupo de recursos do nó), essa tabela de rotas será excluída como parte da migração.
Atualizar um cluster existente para a CNI do Azure alimentada pelo Cilium
Observação
Você pode atualizar um cluster existente de CNI do Azure para Sobreposição se o cluster atender aos seguintes critérios:
- O cluster usa a Sobreposição de CNI do Azure ou a CNI do Azure com alocação de IP dinâmica. Isso não inclui a CNI do Azure.
- O cluster não tem nenhum pool de nós do Windows.
Observação
Ao habilitar o Cilium num cluster com um motor de política de rede diferente (Azure NPM ou Calico), o motor de política de rede será desinstalado e substituído pelo Cilium. Veja Desinstale o Azure Network Policy Manager ou Calico para obter mais detalhes.
Aviso
O processo de atualização dispara cada pool de nós a ter a imagem recriada simultaneamente. Não há suporte para atualizar cada pool de nós separadamente para Sobreposição. Todas as interrupções de rede de cluster são semelhantes a uma atualização de imagem de nó ou atualização da versão do Kubernetes, onde cada nó em um pool de nós é recriado. O Cilium começará a impor 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 você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Use o comando a seguir para atualizar um cluster existente para o CNI do Azure da Plataforma Cilium. Substitua os valores de <clusterName>
e <resourceGroupName>
:
az aks update --name <clusterName> --resource-group <resourceGroupName> \
--network-dataplane cilium
Azure Kubernetes Service