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

O Serviço Kubernetes do Azure (AKS) fornece regularmente novas imagens de nó, por isso é benéfico atualizar as imagens do nó com frequência para usar os recursos mais recentes do AKS. As imagens do nó Linux são atualizadas semanalmente e as imagens do nó do Windows são atualizadas mensalmente. Os anúncios de atualização de imagem estão incluídos nas notas de versão do AKS e pode levar até uma semana para que essas atualizações sejam implementadas em todas as regiões. Você também pode executar atualizações de imagem de nó automaticamente e programá-las usando a manutenção planejada. Para obter mais informações, consulte Atualizar imagens de nó automaticamente.

Este artigo mostra como atualizar imagens de nó de cluster AKS e como atualizar imagens de pool de nós sem atualizar a versão do Kubernetes. Para obter informações sobre como atualizar a versão do Kubernetes para seu cluster, consulte Atualizar um cluster AKS.

Nota

O cluster AKS deve usar conjuntos de escala de máquina virtual 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 imagens de nós disponíveis

  1. Verifique se há atualizações de imagem de nó disponíveis usando o az aks nodepool get-upgrades comando.

    az aks nodepool get-upgrades \
        --nodepool-name <node-pool-name> \
        --cluster-name <cluster-name> \
        --resource-group <resource-group>
    
  2. Na saída, localize e anote o latestNodeImageVersion valor. Esse valor é a versão de imagem de nó mais recente disponível para seu pool de nós.

  3. Verifique a versão atual da imagem do nó para comparar com a versão mais recente usando o az aks nodepool show comando.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --query nodeImageVersion
    
  4. Se o nodeImageVersion valor for diferente do latestNodeImageVersion, você poderá atualizar a imagem do nó.

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

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

    az aks upgrade \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --node-image-only
    
  2. Você pode verificar o status das imagens do nó usando o kubectl get nodes comando.

    Nota

    Este comando pode diferir ligeiramente dependendo do shell que você usa. Para obter mais informações sobre ambientes Windows e PowerShell, consulte a documentação do Kubernetes JSONPath.

    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 az aks show comando para obter os detalhes do pool de nós atualizados. A imagem do nó atual é mostrada na propriedade nodeImageVersion.

    az aks show \
        --resource-group <resource-group> \
        --name <cluster-name>
    

Atualizar um conjunto de nós específico

  1. Atualize a imagem do sistema operacional de um pool de nós sem fazer uma atualização de cluster do Kubernetes usando o az aks nodepool upgrade comando com o --node-image-only sinalizador.

    az aks nodepool upgrade \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --node-image-only
    
  2. Você pode verificar o status das imagens do nó com o kubectl get nodes comando.

    Nota

    Este comando pode diferir ligeiramente dependendo do shell que você usa. Para obter mais informações sobre ambientes Windows e PowerShell, consulte a documentação do Kubernetes JSONPath.

    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 az aks nodepool show comando para obter os detalhes do pool de nós atualizados. A imagem do nó atual é mostrada na propriedade nodeImageVersion.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

Atualizar imagens do nó com aumento de nós

Para acelerar o processo de atualização da imagem do nó, você pode atualizar as imagens do nó usando um valor de aumento de nó personalizável. Por padrão, o AKS usa um nó extra para configurar atualizações.

  1. Atualize imagens de nó com aumento de nó usando o az aks nodepool update comando com o --max-surge sinalizador para configurar o número de nós usados para atualizações.

    Nota

    Para saber mais sobre as compensações de várias --max-surge configurações, consulte Personalizar atualização de aumento de nó.

    az aks nodepool update \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --max-surge 33% \
        --no-wait
    
  2. Você pode verificar o status das imagens do nó com o kubectl get nodes comando.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Obtenha os detalhes atualizados do pool de nós usando o 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 <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

Próximos passos