Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Como parte do ciclo de vida do aplicativo e do cluster, talvez você queira atualizar para a versão mais recente disponível do Kubernetes. Você pode atualizar seu cluster do Serviço de Kubernetes do Azure (AKS) usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.
Neste tutorial, você atualizará um cluster do AKS. Você aprenderá como:
- Identifique as versões atuais e disponíveis do Kubernetes.
- Atualize os nós do Kubernetes.
- Valide um upgrade bem-sucedido.
Antes de começar
Nos tutoriais anteriores, você empacotou um aplicativo em uma imagem de contêiner e carregou a imagem do contêiner no Registro de Contêiner do Azure (ACR). Você também criou um cluster do AKS e implantou um aplicativo nele. Se você não concluiu essas etapas e deseja acompanhar este tutorial, comece com Tutorial 1: preparar um aplicativo para o AKS.
Se estiver usando a CLI do Azure, este tutorial exigirá a versão 2.34.1 ou posterior da CLI do Azure. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Se estiver usando o Azure PowerShell, este tutorial exigirá a versão 5.9.0 ou posterior do Azure PowerShell. Execute Get-InstalledModule -Name Az para encontrar a versão. Se precisar instalar ou atualizar, consulte Instalar o Azure PowerShell.
Para atualizar um cluster do AKS, você precisa da função Serviço de Kubernetes do Azure Colaborador ou permissões equivalentes.
Antes de atualizar, examine as notas de versão do AKS sobre alterações significativas e APIs preteridas. Verifique também os PDBs (orçamentos de indisponibilidade de Pods) da sua carga de trabalho, a cota disponível de computação e a capacidade de IPs da sub-rede para nós de expansão. Para obter mais informações, consulte Opções de atualização e recomendações para clusters do AKS.
Obter versões de cluster disponíveis usando o CLI do Azure
Antes de atualizar, verifique quais versões do Kubernetes estão disponíveis para o cluster usando o az aks get-upgrades comando.
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
A saída de exemplo a seguir mostra a versão atual de um cluster e lista as versões mais recentes em upgrades:
{
"agentPoolProfiles": null,
"controlPlaneProfile": {
"kubernetesVersion": "1.33.7",
...
"upgrades": [
{
"isPreview": null,
"kubernetesVersion": "1.34.10"
},
{
"isPreview": null,
"kubernetesVersion": "1.34.9"
}
]
},
...
}
Obter versões de cluster disponíveis usando Azure PowerShell
Antes de atualizar, verifique a versão e a região atuais do Kubernetes do cluster usando o
Get-AzAksClustercmdlet.Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -Property Name, CurrentKubernetesVersion, LocationA saída de exemplo a seguir mostra a versão e o local atuais do cluster:
Name CurrentKubernetesVersion Location ---- ------------------------ -------- myAKSCluster 1.33.7 westus2Liste as versões do Kubernetes disponíveis na região em que o cluster reside usando o
Get-AzAksVersioncmdlet.Get-AzAksVersion -Location westus2 | Where-Object OrchestratorVersionA saída de exemplo a seguir mostra as versões regionais em
OrchestratorVersion:Default IsPreview OrchestratorType OrchestratorVersion ------- --------- ---------------- ------------------- Kubernetes 1.34.10 Kubernetes 1.34.9 True Kubernetes 1.33.7 ...Para identificar possíveis destinos de atualização, compare versões mais recentes que a versão atual do cluster com as regras de atualização de versão do Kubernetes. Esse cmdlet lista a disponibilidade regional e não valida o caminho de atualização para um cluster específico.
Obter versões de cluster disponíveis usando o portal Azure
Entre no portal do Azure.
Navegue até o recurso de seu cluster do AKS.
No menu de serviço, em Configurações, selecione Atualizações.
Na versão do Kubernetes, selecione Versão de atualização.
Na página Atualizar versão do Kubernetes, selecione o menu suspenso Versão do Kubernetes para exibir as versões disponíveis do Kubernetes para atualização.
Se nenhuma atualização estiver disponível, o cluster poderá já estar na versão mais recente disponível ou a versão do cluster poderá estar fora da janela de suporte. Se a versão não tiver suporte e o AKS não oferecer uma atualização de recuperação, crie um novo cluster com uma versão do Kubernetes com suporte e migre suas cargas de trabalho. Para obter mais informações, consulte políticas de suporte do AKS para versões do Kubernetes.
Processo de atualização de cluster do AKS
Os nós do AKS são cuidadosamente isolados e drenados para minimizar interrupções potenciais aos aplicativos em execução. Durante esse processo, o AKS executa as etapas a seguir:
- Adiciona um novo nó de buffer (ou quantos nós forem configurados no aumento máximo) ao cluster que executa a versão especificada do Kubernetes.
- Isola e esvazia um dos nós antigos para minimizar a interrupção dos aplicativos em execução. Se você estiver usando uma sobretensão máxima, ele isola e esvazia tantos nós ao mesmo tempo quanto o número de nós de buffer especificado.
- Quando o nó antigo é totalmente esvaziado, sua imagem será refeita para receber a nova versão e ele se torna o nó de buffer para o nó seguinte a ser atualizado.
- Esse processo se repete até que todos os nós do cluster tenham sido atualizados.
- No final do processo, o último nó do buffer é excluído, mantendo a contagem de nós de agente e o equilíbrio da zona existente.
Observação
Se nenhum patch for especificado, o cluster será automaticamente atualizado para o patch de GA mais recente da versão secundária especificada. Por exemplo, definir --kubernetes-version como 1.28 resulta na atualização do cluster para 1.28.9.
Para obter mais informações, consulte Atualizações de versão secundária do Kubernetes com suporte no AKS.
Você pode atualizar manualmente o cluster ou configurar atualizações automáticas de cluster. Configure atualizações automáticas de cluster para ajudar a manter seu cluster em uma versão com suporte do Kubernetes.
Atualizar o cluster manualmente usando o CLI do Azure
Atualize seu cluster usando o az aks upgrade comando. Este exemplo atualiza o cluster para a versão 1.34.10:
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version 1.34.10
Observação
Os clusters não LTS com suporte devem ser atualizados sequencialmente, uma versão secundária de cada vez. Por exemplo, para atualizar de 1.33.x para 1.35.x, primeiro atualize para 1.34.x. Um cluster LTS pode ignorar versões secundárias ao migrar para uma versão LTS superior oferecida pelo AKS, se a atualização atender aos requisitos de compatibilidade entre versões e às checagens de validação. Para obter mais informações, consulte as regras de atualização de versão do Kubernetes.
A saída de exemplo a seguir mostra o resultado da atualização. O kubernetesVersion valor agora corresponde à versão especificada no comando de exemplo:
{
...
"agentPoolProfiles": [
{
...
"count": 3,
"currentOrchestratorVersion": "1.34.10",
"maxPods": 110,
"name": "nodepool1",
"nodeImageVersion": "AKSUbuntu-2204gen2containerd-202608.26.0",
"orchestratorVersion": "1.34.10",
"osType": "Linux",
"upgradeSettings": {
"drainTimeoutInMinutes": null,
"maxSurge": "10%",
"nodeSoakDurationInMinutes": null,
"undrainableNodeBehavior": null
},
"vmSize": "Standard_DS2_v2",
...
}
],
...
"currentKubernetesVersion": "1.34.10",
"dnsPrefix": "myAKSClust-myResourceGroup-12ab34",
"enableRbac": false,
"fqdn": "myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io",
"id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"kubernetesVersion": "1.34.10",
"location": "westus2",
"name": "myAKSCluster",
"type": "Microsoft.ContainerService/ManagedClusters"
...
}
Atualizar o cluster manualmente usando Azure PowerShell
Atualize seu cluster usando o Set-AzAksCluster cmdlet. Este exemplo atualiza o cluster para a versão 1.34.10:
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -KubernetesVersion 1.34.10
Observação
Os clusters não LTS com suporte devem ser atualizados em sequência por versão secundária. Por exemplo, para atualizar de 1.33.x para 1.35.x, primeiro atualize para 1.34.x. Um cluster LTS pode ignorar versões menores ao migrar para uma versão LTS superior disponibilizada pelo AKS, se a atualização atender aos requisitos de compatibilidade entre versões e às checagens de validação. Para obter mais informações, consulte as regras de atualização de versão do Kubernetes.
A saída de exemplo a seguir mostra o resultado da atualização. O KubernetesVersion valor agora corresponde à versão especificada no cmdlet de exemplo:
...
ProvisioningState : Succeeded
MaxAgentPools : 100
KubernetesVersion : 1.34.10
CurrentKubernetesVersion : 1.34.10
...
ResourceGroupName : myResourceGroup
Name : myAKSCluster
Type : Microsoft.ContainerService/ManagedClusters
Location : westus2
Tags :
Atualizar o cluster manualmente usando o portal Azure
No portal do Azure, navegue até o recurso do cluster do AKS.
No menu de serviço, em Configurações, selecione Atualizações.
Na versão do Kubernetes, selecione Versão de atualização.
Na página Atualizar versão do Kubernetes, selecione o menu suspenso Versão do Kubernetes para exibir as versões disponíveis do Kubernetes para atualização.
Selecione a versão do Kubernetes para a qual deseja atualizar e, em seguida, selecione Salvar.
A duração da atualização depende de fatores como o número de nós, as configurações de expansão, as restrições de interrupção de cargas de trabalho, o tempo limite para drenagem e duração da imersão do nó. O tempo limite de drenagem padrão é de 30 minutos por nó e pode ser configurado de cinco minutos a 24 horas. A duração da imersão do nó pode adicionar zero a 30 minutos por nó. Para obter mais informações, consulte Personalizar as configurações de surge e indisponibilidade do pool de nós.
Configurar atualizações automáticas de cluster usando o CLI do Azure
Configurar atualizações automáticas de cluster usando Azure PowerShell
Configurar atualizações automáticas de cluster usando o portal Azure
Os clusters automáticos do AKS usam o stable canal e você não precisa configurar um canal. Para clusters padrão do AKS, selecione um canal com base na política de versão. Os canais stable e rapid avançam as versões menores do Kubernetes e ajudam a manter o cluster dentro da janela de versões com suporte. O patch canal instala apenas patches para a versão secundária atual e não avança o cluster para uma versão secundária mais recente.
Em um cluster do AKS Standard, defina o canal de autoupgrade usando o az aks update comando. O exemplo a seguir usa o stable canal:
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
Em um cluster do AKS Standard, defina o canal de autoupgrade usando o Set-AzAksCluster cmdlet. O exemplo a seguir usa o Stable canal:
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -AutoUpgradeChannel Stable
No portal do Azure, navegue até o recurso do cluster do AKS.
No menu de serviço, em Configurações, selecione Atualizações.
Na versão do Kubernetes, selecione Versão de atualização.
Para um cluster AKS Standard, na página Atualizar versão do Kubernetes, selecione a lista suspensa Atualização automática, selecione Habilitado com a versão estável e, em seguida, selecione Salvar.
Para obter mais informações, confira Atualizar automaticamente um cluster do AKS (Serviço de Kubernetes do Azure).
Atualizar imagens de nó
O AKS fornece regularmente novas imagens de nó. As imagens dos nós do Linux são atualizadas semanalmente e as imagens dos nós do Windows são atualizadas mensalmente. É recomendável atualizar suas imagens de nó com frequência para usar os recursos e atualizações de segurança mais recentes do AKS. Para obter mais informações, confira Atualizar imagens de nó do AKS (Serviço de Kubernetes do Azure). Para configurar atualizações automáticas de imagem de nó, confira Atualizar automaticamente as imagens do sistema operacional do nó de cluster do AKS (Serviço de Kubernetes do Azure).
Ver os eventos de upgrade
Observação
Quando você atualiza o seu cluster, os seguintes eventos do Kubernetes podem ocorrer nos nós:
- Aumentar: crie um nó de aumento.
- Esvaziar: remova pods do nó. O AKS permite 30 minutos para drenar um nó por padrão. Você pode configurar o tempo limite de drenagem de cinco minutos a 24 horas.
- Atualização: a atualização de um nó foi concluída com sucesso ou falhou.
- Excluir: exclua um nó de aumento.
Use o kubectl get comando com um seletor de campo para exibir eventos do upgrader do AKS no namespace padrão.
kubectl get events --field-selector source=upgrader
A saída de exemplo a seguir mostra alguns dos eventos anteriores listados durante uma atualização:
LAST SEEN TYPE REASON OBJECT MESSAGE
...
5m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
5m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Deleting node aks-nodepool1-12345678-vmss000000 from API server
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully reimaged node: aks-nodepool1-12345678-vmss000000
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully upgraded node: aks-nodepool1-12345678-vmss000000
4m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
...
Validar uma atualização usando o CLI do Azure
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 do AKS executa a versão do Kubernetes de destino:
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------------ ------------------- ----------------------------------------------------------------
myAKSCluster westus2 myResourceGroup 1.34.10 1.34.10 Succeeded myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io
Validar uma atualização usando Azure PowerShell
Confirme se a atualização foi bem-sucedida usando o Get-AzAksCluster cmdlet.
Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
Select-Object -Property Name, Location, KubernetesVersion, ProvisioningState
A saída de exemplo a seguir mostra que o cluster do AKS executa a versão do Kubernetes de destino:
Name Location KubernetesVersion ProvisioningState
---- -------- ----------------- -----------------
myAKSCluster westus2 1.34.10 Succeeded
Validar uma atualização usando o portal Azure
- No portal do Azure, navegue até o recurso do cluster do AKS.
- Na página Visão geral , em Essentials, verifique a versão do Kubernetes para confirmar se a atualização foi bem-sucedida.
Excluir o cluster usando o CLI do Azure
Excluir o cluster usando Azure PowerShell
Excluir o cluster usando o portal Azure
Como este tutorial é a última parte da série, é aconselhável excluir seu cluster do AKS para evitar a geração encargos 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
Remova o grupo de recursos, o serviço de contêiner e todos os recursos relacionados usando o Remove-AzResourceGroup cmdlet.
Remove-AzResourceGroup -Name myResourceGroup
- No portal do Azure, navegue até o recurso do cluster do AKS.
- Na página Visão Geral, selecione Excluir.
- Na página Excluir confirmação do cluster, selecione Excluir.
Observação
Quando você excluir o cluster, a entidade de serviço do Microsoft Entra usada pelo cluster do AKS não será removida. Para obter as etapas para remover a entidade de serviço, confira Considerações sobre a entidade de serviço do AKS e sua exclusão. Se você usou uma identidade gerenciada, ela é administrada pela plataforma e não exige que você faça a provisão ou a rotação de nenhum segredo.
Próximas etapas
Neste tutorial, você fez upgrade do Kubernetes em um cluster do AKS. Você aprendeu a:
- Identifique as versões atuais e disponíveis do Kubernetes.
- Atualize os nós do Kubernetes.
- Valide um upgrade bem-sucedido.
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, confira as Diretrizes de solução do AKS.