Partilhar via


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

O Serviço Kubernetes do Azure (AKS) fornece regularmente novas imagens de nós, por isso é benéfico atualizar as imagens de nós 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 demorar até uma semana para que essas atualizações sejam implementadas em todas as regiões. Você também pode executar atualizações automáticas das imagens dos nós e programá-las através de manutenção programada. Para obter mais informações, consulte Atualizar automaticamente imagens de nó.

Este artigo mostra como atualizar imagens de nós de cluster AKS e como atualizar imagens de conjunto de nós sem ter de 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.

Observação

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).

Conecte-se ao cluster AKS

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

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

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 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 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 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 nodeImageVersion valor for diferente do latestNodeImageVersion, você poderá atualizar a imagem do nó.

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

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

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

    Observação

    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 é apresentada na propriedade nodeImageVersion.

    az aks show \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

Atualizar um conjunto de nós específico

  1. Atualize a imagem do SO de um pool de nós sem atualizar o cluster do Kubernetes usando o az aks nodepool upgrade comando com a --node-image-only flag.

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

    Observação

    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 é apresentada na propriedade nodeImageVersion.

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

Atualizar imagens de nós com expansão de nó

Para acelerar o processo de atualização das imagens do nó, pode atualizar estas imagens utilizando um valor personalizável de aumento do nó. Por padrão, o AKS usa um nó extra para gerir atualizações.

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

    Observação

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

    az aks nodepool update \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --max-surge 33% \
        --no-wait
    
  2. Você pode verificar o status 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}'
    
  3. Obtenha os detalhes atualizados do pool de nós usando o az aks nodepool show comando. A imagem do nó atual é apresentada na propriedade nodeImageVersion.

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

Próximos passos