Atualizar imagens de nodes do AKS (Serviço de Kubernetes do Azure)

O AKS (Serviço de Kubernetes do Azure) fornece regularmente novas imagens dos nós; portanto, atualize as imagens dos nós com frequência para usar os recursos mais recentes do AKS. As imagens de nó do Linux são atualizadas semanalmente e as imagens de nó do Windows são atualizadas mensalmente. As notas de versão do AKS incluem avisos de atualização de imagens. Pode levar até duas semanas para essas atualizações serem distribuídas em todas as regiões. Consulte o rastreador de versão para obter o status de distribuição. Você também pode executar atualizações de imagem de nó automaticamente e agende-as usando a manutenção planejada. Para obter mais informações, consulte Atualizar automaticamente as imagens do sistema operacional do nó.

O AKS recomenda canais de atualização automática do SO do nó, que atualizam automaticamente as imagens dos nós ou aplicam patches de segurança durante as janelas de manutenção sem alterar a versão do Kubernetes. Se você quiser atualizar manualmente as imagens do nó, siga as instruções contidas neste artigo. 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.

Importante

A partir de 30 de novembro de 2025, o AKS (Serviço de Kubernetes do Azure) não dá mais suporte ou fornece atualizações de segurança para o Azure Linux 2.0. A imagem do nó Azure Linux 2.0 está congelada na 202512.06.0 versão. A partir de 31 de outubro de 2026, as imagens do nó serão removidas e você não poderá dimensionar os pools de nós. Migre para uma versão do Azure Linux com suporte atualizando os pools de nós para uma versão do Kubernetes com suporte ou migrando para o osSku AzureLinux3. Para obter mais informações, consulte o problema de desativação do GitHub e o anúncio de desativação do Azure Updates. Para se manter informado sobre anúncios e atualizações, acompanhe as notas de lançamento do AKS.

Observação

Os clusters que usam o Node Auto-Provisioning (NAP), ou Provisionamento Automático de Nós, atualizam automaticamente as imagens dos nós quando uma nova imagem está disponível. Você pode configurar uma janela de manutenção para controlar quando o NAP pega uma nova imagem, mas a janela não determina necessariamente quando os nós existentes são interrompidos. A lógica de descompasso do NAP, os orçamentos de interrupção do nó karpenter e os orçamentos de interrupção do pod controlam como e quando ocorre a interrupção. Para obter mais informações, consulte atualizações de imagens de nó para NAP.

Não é possível fazer downgrade da versão da imagem do nó (por exemplo, de AKSUbuntu-2404 para AKSUbuntu-2204, ou de AKSUbuntu-2404-202601.27.0 para AKSUbuntu-2404-202601.13.0).

Pré-requisitos

  • Um cluster AKS e um pool de nós existentes.
  • A CLI do Azure instalada e conectada à sua conta do Azure.
  • Permissão para recuperar credenciais de cluster e ler e atualizar os pools de clusters e nós do AKS.
  • Um shell do Bash. Os comandos neste artigo usam a sintaxe de variáveis de ambiente do Bash.

Defina variáveis de ambiente para os nomes do grupo de recursos, do cluster e do pool de nós para usar nos comandos subsequentes:

export AKS_RESOURCE_GROUP="<resource-group-name>"
export AKS_CLUSTER="<cluster-name>"
export AKS_NODEPOOL="<node-pool-name>"

Conectar-se ao cluster do AKS

  1. Conecte-se ao cluster do AKS usando o az aks get-credentials comando.

    az aks get-credentials \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

Verifique se há atualizações de imagem de nó disponíveis

  1. 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 $AKS_NODEPOOL \
        --cluster-name $AKS_CLUSTER \
        --resource-group $AKS_RESOURCE_GROUP
    
  2. Na saída, localize e anote o valor latestNodeImageVersion. Este valor é a versão mais recente da imagem do nó disponível para o seu pool de nós.

  3. Verifique a versão da imagem do nó que você está utilizando atualmente para compará-la com a versão mais recente, usando o comando az aks nodepool show.

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    
  4. Se o valor nodeImageVersion for diferente de latestNodeImageVersion, você poderá atualizar a imagem do seu nó.

Atualizar todas as imagens de nós em todos os pools de nós

  1. Atualize todas as imagens de nós em todos os pools de nós no cluster usando o comando az aks upgrade com o sinalizador --node-image-only.

    az aks upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-image-only \
        --yes
    
  2. 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 Windows e ambientes do PowerShell, consulte a documentação Kubernetes JSONPath. Esse comando lista o nome de cada nó ao lado do valor do rótulo kubernetes.azure.com/node-image-version, que identifica a versão atual da imagem do nó.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 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 propriedade nodeImageVersion.

    az aks show \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER  \
        --query "agentPoolProfiles[].{Name:name, NodeImageVersion:nodeImageVersion}"
    

Atualizar um pool de nós específico

  1. 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 $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --node-image-only
    
  2. 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 Windows e ambientes do PowerShell, consulte a documentação Kubernetes JSONPath. Esse comando lista o nome de cada nó ao lado do valor do rótulo kubernetes.azure.com/node-image-version, que identifica a versão atual da imagem do nó.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 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 propriedade nodeImageVersion.

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    

Atualizar imagens de nó com surtos de nó

Este procedimento atualiza a imagem do nó de um pool de nós específico, e não de todos os pools de nós do cluster. Por padrão, o AKS usa um nó extra para configurar atualizações. Para acelerar o processo de atualização da imagem do nó, atualize suas imagens de nó usando um valor de aumento de nós personalizável.

  1. Configure o número de nós de aumento para o pool de nós usando o az aks nodepool update comando com a flag --max-surge. Essa configuração persiste para atualizações subsequentes.

    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 $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --max-surge 33%
    
  2. Atualize a imagem do nó usando o comando az aks nodepool upgrade com a opção --node-image-only.

    az aks nodepool upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --node-image-only
    
  3. Você pode verificar o estado das imagens do nó com o comando kubectl get nodes. Esse comando lista o nome de cada nó ao lado do valor do rótulo kubernetes.azure.com/node-image-version, que identifica a versão atual da imagem do nó.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  4. Obtenha os detalhes atualizados do pool de nós usando o az aks nodepool show comando. A imagem do nó atual é mostrada na propriedade nodeImageVersion.

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion