Atualizar imagens de nós do AKS (Serviço de Kubernetes do Azure)
O Serviço de Kubernetes do Azure (AKS) fornece regularmente novas imagens de nó, por isso é benéfico atualizar suas imagens de nó com frequência para usar os recursos mais recentes do AKS. As imagens dos nós do Linux são atualizadas semanalmente e as imagens dos nós do Windows são atualizadas mensalmente. Os anúncios de atualização de imagens estão incluídos nas Notas sobre a versão do AKS e pode levar até uma semana para que essas atualizações sejam distribuídas em todas as regiões. Você também pode executar atualizações de imagem de nó automaticamente e programá-las usando manutenção planejada. Para obter mais informações, confira Atualizar automaticamente as imagens do nó.
Este artigo mostra como atualizar imagens de nós no cluster do AKS e como atualizar imagens do pool de nós sem atualizar a versão do Kubernetes. Para saber mais sobre como atualizar a versão do Kubernetes para seu cluster, confira Atualizar um cluster do AKS.
Observação
O cluster do AKS deve usar conjuntos de dimensionamento de máquinas virtuais para os nós.
Não é possível fazer downgrade de uma versão de imagem de nó (por exemplo , AKSUbuntu-2204 para AKSUbuntu-1804 ou AKSUbuntu-2204-202308.01.0 para AKSUbuntu-2204-202307.27.0).
Verifique se há atualizações de imagem de nó disponíveis
Verifique se há atualizações de imagem de nó disponíveis usando o comando
az aks nodepool get-upgrades
.az aks nodepool get-upgrades \ --nodepool-name <node-pool-name> \ --cluster-name <cluster-name> \ --resource-group <resource-group>
Na saída, localize e anote o valor
latestNodeImageVersion
. Esse valor é a versão mais recente da imagem do nó disponível para seu pool de nós.Verifique a versão atual da imagem do nó para comparar com a versão mais recente usando o comando
az aks nodepool show
.az aks nodepool show \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --query nodeImageVersion
Se o valor
nodeImageVersion
for diferente delatestNodeImageVersion
, você poderá atualizar sua imagem de nó.
Atualizar todas as imagens de nós em todos os pools de nós
Atualize todas as imagens de nós em todos os pools de nós no seu cluster usando o comando
az aks upgrade
com o sinalizador--node-image-only
.az aks upgrade \ --resource-group <resource-group> \ --name <cluster-name> \ --node-image-only
Você pode verificar o estado das imagens do nó usando o comando
kubectl get nodes
.Observação
Esse comando pode ser um pouco diferente dependendo do shell que você usa. Para obter mais informações sobre ambientes do Windows e do PowerShell, consulte a documentação JSONPath do Kubernetes.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Quando a atualização for concluída, use o comando
az aks show
para obter os detalhes atualizados do pool de nós. A imagem do nó atual é mostrada na propriedadenodeImageVersion
.az aks show \ --resource-group <resource-group> \ --name <cluster-name>
Atualizar um pool de nós específico
Atualize a imagem do sistema operacional de um pool de nós sem fazer uma atualização do cluster Kubernetes usando o comando
az aks nodepool upgrade
com o sinalizador--node-image-only
.az aks nodepool upgrade \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --node-image-only
Você pode verificar o estado das imagens do nó com o comando
kubectl get nodes
.Observação
Esse comando pode ser um pouco diferente dependendo do shell que você usa. Para obter mais informações sobre ambientes do Windows e do PowerShell, consulte a documentação JSONPath do Kubernetes.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Quando a atualização for concluída, use o comando
az aks nodepool show
para obter os detalhes atualizados do pool de nós. A imagem do nó atual é mostrada na propriedadenodeImageVersion
.az aks nodepool show \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name>
Atualizar imagens de nó com surtos de nó
Para acelerar o processo de atualização de imagem de nó, atualize suas imagens de nó usando um valor de surto de nó personalizável. Por padrão, o AKS usa um nó adicional para configurar atualizações.
Atualize as imagens dos nós com o node surge usando o comando
az aks nodepool update
com o sinalizador--max-surge
para configurar o número de nós usados para atualizações.Observação
Para saber mais sobre as compensações de várias configurações
--max-surge
, confira Personalizar atualização de surtos de nó.az aks nodepool update \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --max-surge 33% \ --no-wait
Você pode verificar o estado das imagens do nó com o comando
kubectl get nodes
.kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Obtenha os detalhes atualizados do pool de nós usando
az aks nodepool show
para obter os detalhes atualizados do pool de nós. A imagem do nó atual é mostrada na propriedadenodeImageVersion
.az aks nodepool show \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name>
Próximas etapas
- Para obter informações sobre as imagens de nós mais recentes, veja as notas de versão do AKS.
- Saiba como atualizar a versão do Kubernetes com a Atualização de um cluster do AKS.
- Aplicar automaticamente atualizações de cluster e o pool de nós com o GitHub Actions.
- Saiba mais sobre os pools de vários nós com Criar pools de vários nós.
- Aprenda sobre as melhores práticas de atualização com orientação de atualização e patch do AKS.
Azure Kubernetes Service