Tutorial - Atualizar um cluster do Serviço Kubernetes do Azure (AKS)
Como parte do ciclo de vida do aplicativo e do cluster, convém atualizar para a versão mais recente disponível do Kubernetes. Você pode atualizar seu cluster do Serviço Kubernetes do Azure (AKS) usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.
Neste tutorial, parte sete de sete, você atualiza um cluster AKS. Sabe como:
- Identifique as versões atuais e disponíveis do Kubernetes.
- Atualize seus nós do Kubernetes.
- Valide uma atualização bem-sucedida.
Antes de começar
Em tutoriais anteriores, você empacotou um aplicativo em uma imagem de contêiner e carregou a imagem de contêiner no Registro de Contêiner do Azure (ACR). Você também criou um cluster AKS e implantou um aplicativo nele. Se você não concluiu essas etapas e quer acompanhar, comece com o Tutorial 1 - Preparar a inscrição para o AKS.
Se estiver usando a CLI do Azure, este tutorial exigirá a CLI do Azure versão 2.34.1 ou posterior. Executar az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Se estiver usando o Azure PowerShell, este tutorial exigirá o Azure PowerShell versão 5.9.0 ou posterior. Executar Get-InstalledModule -Name Az
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure PowerShell(Instalar o Azure PowerShell).
Obter versões de cluster disponíveis
Antes de atualizar, verifique quais versões do Kubernetes estão disponíveis para seu cluster usando o
az aks get-upgrades
comando.az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
O exemplo de saída a seguir mostra a versão atual como 1.28.9 e lista as versões disponíveis em
upgrades
:{ "agentPoolProfiles": null, "controlPlaneProfile": { "kubernetesVersion": "1.28.9", ... "upgrades": [ { "isPreview": null, "kubernetesVersion": "1.29.4" }, { "isPreview": null, "kubernetesVersion": "1.29.2" } ] }, ... }
Atualizar um cluster do AKS
Os nós AKS são cuidadosamente isolados e drenados para minimizar possíveis interrupções nos aplicativos em execução. Durante esse processo, o AKS executa as seguintes etapas:
- Adiciona um novo nó de buffer (ou tantos nós quantos configurados em max surge) ao cluster que executa a versão especificada do Kubernetes.
- Isola e drena um dos nós antigos para minimizar a interrupção dos aplicativos em execução. Se você estiver usando max surge, ele corda e drena tantos nós ao mesmo tempo quanto o número de nós de buffer especificado.
- Quando o nó antigo é totalmente drenado, ele é recriado para receber a nova versão e se torna o nó de buffer para o nó seguinte a ser atualizado.
- Esse processo se repete até que todos os nós no cluster tenham sido atualizados.
- No final do processo, o último nó de buffer é excluído, mantendo a contagem de nós do agente existente e o equilíbrio de zona.
Nota
Se não for especificado nenhum patch, o cluster será atualizado automaticamente para o patch de disponibilidade geral mais recente da versão secundária especificada. Por exemplo, a configuração --kubernetes-version
para 1.28
resulta na atualização do cluster para 1.28.9
.
Para obter mais informações, veja Atualizações de versão secundária do Kubernetes suportadas no AKS.
Você pode atualizar manualmente seu cluster ou configurar atualizações automáticas de cluster. Recomendamos que você configure atualizações automáticas de cluster para garantir que seu cluster esteja sempre executando a versão mais recente do Kubernetes.
Atualizar cluster manualmente
Atualize seu cluster usando o
az aks upgrade
comando.az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version KUBERNETES_VERSION
Você será solicitado a confirmar a operação de atualização e a confirmar que deseja atualizar o plano de controle e todos os pools de nós para a versão selecionada do Kubernetes:
Are you sure you want to perform this operation? (y/N): y Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.29.2. Continue? (y/N): y
Nota
Pode atualizar apenas uma versão secundária de cada vez. Por exemplo, você pode atualizar de 1.14.x para 1.15.x, mas não pode atualizar de 1.14.x para 1.16.x diretamente. Para atualizar de 1.14.x para 1.16.x, você deve primeiro atualizar de 1.14.x para 1.15.x e, em seguida, executar outra atualização de 1.15.x para 1.16.x.
A saída de exemplo a seguir mostra o resultado da atualização para 1.29.2. Observe que agora
kubernetesVersion
mostra 1.29.2:{ ... "agentPoolProfiles": [ { ... "count": 3, "currentOrchestratorVersion": "1.29.2", "maxPods": 110, "name": "nodepool1", "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202405.27.0", "orchestratorVersion": "1.29.2", "osType": "Linux", "upgradeSettings": { "drainTimeoutInMinutes": null, "maxSurge": "10%", "nodeSoakDurationInMinutes": null, "undrainableNodeBehavior": null }, "vmSize": "Standard_DS2_v2", ... } ], ... "currentKubernetesVersion": "1.29.2", "dnsPrefix": "myAKSClust-myResourceGroup-19da35", "enableRbac": false, "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io", "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster", "kubernetesVersion": "1.29.2", "location": "eastus", "name": "myAKSCluster", "type": "Microsoft.ContainerService/ManagedClusters" ... }
Configurar atualizações automáticas de cluster
Defina um canal de atualização automática no cluster usando o
az aks update
comando com o--auto-upgrade-channel
parâmetro definido comopatch
.az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
Para obter mais informações, consulte Atualizar automaticamente um cluster do Serviço Kubernetes do Azure (AKS).
Atualizar imagens de nó AKS
O AKS fornece regularmente novas imagens de nós. As imagens do nó Linux são atualizadas semanalmente e as imagens do nó do Windows são atualizadas mensalmente. Recomendamos atualizar suas imagens de nó com frequência para usar os recursos mais recentes do AKS e as atualizações de segurança. Para obter mais informações, consulte Atualizar imagens de nó no Serviço Kubernetes do Azure (AKS). Para configurar atualizações automáticas de imagem de nó, consulte Atualizar automaticamente as imagens do sistema operacional do nó de cluster do Serviço Kubernetes do Azure (AKS).
Ver os eventos de atualização
Nota
Quando você atualiza seu cluster, os seguintes eventos do Kubernetes podem ocorrer nos nós:
- Surge: crie um nó de surto.
- Drenagem: Expulse as cápsulas do nó. Cada cápsula tem um tempo limite de cinco minutos para completar a remoção.
- Atualização: a atualização de um nó foi bem-sucedida ou falhou.
- Excluir: exclua um nó de surto.
Exiba os eventos de atualização nos namespaces padrão usando o
kubectl get events
comando.kubectl get events --field-selector source=upgrader
A saída de exemplo a seguir mostra alguns dos eventos acima listados durante uma atualização:
LAST SEEN TYPE REASON OBJECT MESSAGE ... 5m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 5m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Deleting node aks-nodepool1-96663640-vmss000000 from API server 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully reimaged node: aks-nodepool1-96663640-vmss000000 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully upgraded node: aks-nodepool1-96663640-vmss000000 4m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 ...
Validar uma atualização
Confirme se a atualização foi bem-sucedida usando o
az aks show
comando.az aks show --resource-group myResourceGroup --name myAKSCluster --output table
A saída de exemplo a seguir mostra que o cluster AKS executa o KubernetesVersion 1.27.3:
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn ------------ ---------- --------------- ------------------- ------------------------ ------------------- ---------------------------------------------------------------- myAKSCluster eastus myResourceGroup 1.29.2 1.29.2 Succeeded myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io
Eliminar o cluster
Como este tutorial é a última parte da série, convém excluir seu cluster AKS para evitar incorrer em cobranças do Azure.
Remova o grupo de recursos, o serviço de contêiner e todos os recursos relacionados usando o
az group delete
comando.az group delete --name myResourceGroup --yes --no-wait
Nota
Quando você exclui o cluster, a entidade de serviço do Microsoft Entra usada pelo cluster AKS não é removida. Para obter passos sobre como remover o principal de serviço, consulte Considerações sobre e eliminação do principal de serviço AKS. Se você usou uma identidade gerenciada, a identidade é gerenciada pela plataforma e não exige que você provisione ou alterne nenhum segredo.
Próximos passos
Neste tutorial, atualizou o Kubernetes num cluster do AKS. Aprendeu a:
- Identifique as versões atuais e disponíveis do Kubernetes.
- Atualize seus nós do Kubernetes.
- Valide uma atualização bem-sucedida.
Para obter mais informações sobre o AKS, consulte a visão geral do AKS. Para obter orientação sobre como criar soluções completas com o AKS, consulte o Guia de solução do AKS.
Azure Kubernetes Service