Partilhar via


Atualizar pools de nós no Serviço de Kubernetes do Azure (AKS)

Neste artigo, aprende como atualizar um único pool de nós e como atualizar o plano de controlo do cluster para múltiplos pools de nós no Azure Kubernetes Service (AKS).

Observação

Como prática recomendada, você deve atualizar todos os pools de nós em um cluster AKS para a mesma versão do Kubernetes. O comportamento padrão de [az aks upgrade][az-aks-upgrade] é atualizar todos os pools de nós juntamente com o plano de controlo para alcançar este alinhamento. A capacidade de atualizar grupos de nós individuais permite realizar uma atualização contínua e agendar pods entre grupos de nós para manter o tempo de atividade da aplicação.

Atualizar um pool de nós único

Observação

A versão da imagem do sistema operativo (SO) do pool de nós está ligada à versão Kubernetes do cluster. Só recebes atualizações de imagem do sistema operativo após uma atualização do cluster.

  1. Verifique se há melhorias disponíveis usando o comando [az aks get-upgrades][az-aks-get-upgrades].

    az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name>
    
  2. Atualize um pool específico de nós usando o comando [az aks nodepool upgrade][az-aks-nodepool-upgrade].

    az aks nodepool upgrade \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --kubernetes-version <kubernetes-version> \
        --no-wait
    
  3. Verifique o estado do seu pool de nós usando o comando [az aks nodepool list][az-aks-nodepool-list].

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name>
    

    O exemplo a seguir mostra que o pool de nós está no estado Em atualização:

    [
      {
        ...
        "count": 3,
        ...
        "name": "<node-pool-name>",
        "orchestratorVersion": "<kubernetes-version>",
        ...
        "provisioningState": "Upgrading",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      },
      {
        ...
        "count": 2,
        ...
        "name": "<node-pool-name-2>",
        "orchestratorVersion": "<kubernetes-version-2>",
        ...
        "provisioningState": "Succeeded",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      }
    ]
    

    Leva alguns minutos para atualizar os nós para a versão especificada. Após a atualização estar concluída, o provisioningState pool de nós muda para Succeeded.

Atualizar um plano de controle de cluster com vários pools de nós

Um cluster AKS tem dois objetos de recurso de cluster com versões Kubernetes associadas: a versão Kubernetes do plano de controlo do cluster e um pool de nós com uma versão Kubernetes.

Comportamento de atualização para o plano de controlo e pools de nós

O plano de controle mapeia para um ou vários pools de nós. O comportamento de uma operação de atualização depende do comando Azure CLI que usa e das flags que especifica:

  • az aks upgrade atualiza o plano de controle e todos os pools de nós no cluster para a mesma versão do Kubernetes.
  • az aks upgrade com o --control-plane-only sinalizador atualiza apenas o plano de controlo de cluster e mantém todos os grupos de nós inalterados.
  • az aks nodepool upgrade atualiza apenas o pool de nós de destino com a versão especificada do Kubernetes.

Regras de validação para atualizações

Observação

O Kubernetes usa o esquema de versionamento semântico padrão. O número da versão é expresso como x.y.z, onde x é a versão principal, y é a versão secundária e z é a versão do patch. Por exemplo, na versão 1.12.6, a 1 é a versão principal, a 12 é a versão menor e a 6 é a versão patch. A versão do Kubernetes do plano de controle e o pool de nós inicial são definidos no momento da criação do cluster. Outros pools de nós têm sua versão do Kubernetes definida quando são adicionados ao cluster. As versões do Kubernetes podem diferir entre grupos de nós e entre um grupo de nós e o plano de controlo.

As atualizações do Kubernetes para um plano de controlo de cluster e piscinas de nós são validadas utilizando os seguintes conjuntos de regras:

  • Regras para versões válidas para a atualização de pools de nós:

    • A versão do pool de nós deve ter a mesma versão principal do plano de controle.
    • A versão secundária do pool de nós deve estar dentro de duas versões secundárias da versão do plano de controle.
    • A versão do pool de nós não pode ser maior do que a versão de controle major.minor.patch .
  • Regras para enviar uma operação de atualização:

    • Não é possível fazer downgrade da versão do Kubernetes do plano de controle ou do pool de nós.
    • Se uma versão do Kubernetes do pool de nós não for especificada, o comportamento dependerá do cliente. Nos templates Azure Resource Manager (ARM), a declaração volta à versão existente definida para o pool de nós. Se nada estiver definido, volta para a versão do plano de controlo.
    • Não é possível enviar simultaneamente várias operações em um único plano de controle ou recurso de pool de nós. Você pode atualizar ou dimensionar um plano de controle ou um pool de nós em um determinado momento.

Próximos passos: Gerir os pools de nós no AKS

Para saber mais sobre a gestão de pools de nós no AKS, consulte Gerir pools de nós no Azure Kubernetes Service (AKS).