Partilhar via


Tutorial - Atualizar um cluster do Serviço Kubernetes do Azure (AKS)

Como parte do ciclo de vida do aplicativo e do cluster, convém atualizar para a versão mais recente disponível do Kubernetes. Você pode atualizar seu cluster do Serviço Kubernetes do Azure (AKS) usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.

Neste tutorial, você atualiza um cluster AKS. Você aprende a:

  • Identifique as versões atuais e disponíveis do Kubernetes.
  • Atualize os seus nós do Kubernetes.
  • Valide uma atualização bem-sucedida.

Antes de começar

Em tutoriais anteriores, você empacotou um aplicativo em uma imagem de contêiner e carregou a imagem de contêiner no Registro de Contêiner do Azure (ACR). Você também criou um cluster AKS e implantou um aplicativo nele. Se você não concluiu essas etapas e quer acompanhar, comece com o Tutorial 1 - Preparar a inscrição para o AKS.

Se estiver usando a CLI do Azure, este tutorial exigirá a CLI do Azure versão 2.34.1 ou posterior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, consulte Install Azure CLI.

Se estiver usando o Azure PowerShell, este tutorial exigirá o Azure PowerShell versão 5.9.0 ou posterior. Executar Get-InstalledModule -Name Az para localizar a versão. Se você precisar instalar ou atualizar, consulte Instalar o Azure PowerShell.

Obter versões de cluster disponíveis

  • Antes de atualizar, verifique quais versões do Kubernetes estão disponíveis para seu cluster usando o az aks get-upgrades comando.

    az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
    

    O exemplo de saída a seguir mostra a versão atual como 1.28.9 e lista as versões disponíveis em upgrades:

      {
        "agentPoolProfiles": null,
        "controlPlaneProfile": {
          "kubernetesVersion": "1.28.9",
          ...
          "upgrades": [
            {
              "isPreview": null,
              "kubernetesVersion": "1.29.4"
            },
            {
              "isPreview": null,
              "kubernetesVersion": "1.29.2"
            }
          ]
        },
        ...
      }
    

Atualizar um cluster do AKS

Os nós AKS são cuidadosamente isolados e drenados para minimizar possíveis interrupções nos aplicativos em execução. Durante esse processo, o AKS executa as seguintes etapas:

  • Adiciona um novo nó de buffer (ou tantos nós quantos configurados em max surge) ao cluster que executa a versão especificada do Kubernetes.
  • Isola e drena um dos nós antigos para minimizar a interrupção dos aplicativos em execução. Se estiver a usar max surge, o sistema delimita e drena tantos nós ao mesmo tempo quanto o número de nós de buffer especificado.
  • Quando o nó antigo está completamente esvaziado, é reinstalado para receber a nova versão e torna-se o nó de buffer para o próximo nó a ser atualizado.
  • Esse processo se repete até que todos os nós no cluster tenham sido atualizados.
  • No final do processo, o último nó de buffer é excluído, mantendo a contagem de nós do agente existente e o equilíbrio de zona.

Note

Se não for especificado nenhum patch, o cluster será atualizado automaticamente para o patch de disponibilidade geral mais recente da versão secundária especificada. Por exemplo, a configuração --kubernetes-version para 1.28 resulta na atualização do cluster para 1.28.9.

Para obter mais informações, consulte Atualizações de versão secundária do Kubernetes suportadas no AKS.

Você pode atualizar manualmente seu cluster ou configurar atualizações automáticas de cluster. Recomendamos que você configure atualizações automáticas de cluster para garantir que seu cluster esteja sempre executando a versão mais recente do Kubernetes.

Atualização manual do cluster

  • Atualize seu cluster usando o az aks upgrade comando.

    az aks upgrade \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --kubernetes-version KUBERNETES_VERSION
    
  • Você será solicitado a confirmar a operação de atualização e a confirmar que deseja atualizar o plano de controle e todos os pools de nós para a versão selecionada do Kubernetes:

     Are you sure you want to perform this operation? (y/N): y
    Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.29.2. Continue? (y/N): y
    

    Note

    Você só pode atualizar uma versão secundária de cada vez. Por exemplo, você pode atualizar de 1.14.x para 1.15.x, mas não pode atualizar de 1.14.x para 1.16.x diretamente. Para atualizar de 1.14.x para 1.16.x, você deve primeiro atualizar de 1.14.x para 1.15.x e, em seguida, executar outra atualização de 1.15.x para 1.16.x.

    A saída de exemplo a seguir mostra o resultado da atualização para 1.29.2. Observe que agora kubernetesVersion mostra 1.29.2:

    {
      ...
      "agentPoolProfiles": [
        {
          ...
          "count": 3,
          "currentOrchestratorVersion": "1.29.2",
          "maxPods": 110,
          "name": "nodepool1",
          "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202405.27.0",
          "orchestratorVersion": "1.29.2",
          "osType": "Linux",
          "upgradeSettings": {
            "drainTimeoutInMinutes": null,
            "maxSurge": "10%",
            "nodeSoakDurationInMinutes": null,
            "undrainableNodeBehavior": null
          },
          "vmSize": "Standard_DS2_v2",
          ...
        }
      ],
      ...
      "currentKubernetesVersion": "1.29.2",
      "dnsPrefix": "myAKSClust-myResourceGroup-19da35",
      "enableRbac": false,
      "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.westus2.azmk8s.io",
      "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
      "kubernetesVersion": "1.29.2",
      "location": "westus2",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
      ...
    }
    

Configurar atualizações automáticas de cluster

  • Defina um canal de atualização automática no cluster usando o az aks update comando com o --auto-upgrade-channel parâmetro definido como patch.

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
    

Para obter mais informações, consulte Atualizar automaticamente um cluster do Serviço Kubernetes do Azure (AKS).

Atualizar imagens de nodos AKS

AKS fornece regularmente novas imagens para os nós. As imagens do nó Linux são atualizadas semanalmente e as imagens do nó do Windows são atualizadas mensalmente. Recomendamos atualizar/renovar as suas imagens de nó frequentemente para utilizar os recursos mais recentes do AKS e as atualizações de segurança. Para mais informações, consulte Atualizar as imagens dos nós no Serviço Kubernetes do Azure (AKS). Para configurar atualizações automáticas de imagem de nó, consulte Atualizar automaticamente as imagens do sistema operacional do nó de cluster do Serviço Kubernetes do Azure (AKS).

Ver os eventos de atualização

Note

Quando você atualiza seu cluster, os seguintes eventos do Kubernetes podem ocorrer nos nós:

  • Surge: crie um nó de surto.
  • Drenagem: Expulse as cápsulas do nó. Cada cápsula tem um tempo limite de cinco minutos para completar o despejo.
  • Atualização: a atualização de um nó foi executada com sucesso ou falhou.
  • Excluir: Excluir um nó de sobrecarga.
  • Exiba os eventos de atualização nos namespaces padrão usando o kubectl get events comando.

    kubectl get events --field-selector source=upgrader
    

    A saída de exemplo a seguir mostra alguns dos eventos acima listados durante uma atualização:

    LAST SEEN   TYPE      REASON    OBJECT                                   MESSAGE
    ...
    5m          Normal    Drain     node/aks-nodepool1-96663640-vmss000000   Draining node: aks-nodepool1-96663640-vmss000000
    5m          Normal    Upgrade   node/aks-nodepool1-96663640-vmss000000   Deleting node aks-nodepool1-96663640-vmss000000 from API server
    4m          Normal    Upgrade   node/aks-nodepool1-96663640-vmss000000   Successfully reimaged node: aks-nodepool1-96663640-vmss000000
    4m          Normal    Upgrade   node/aks-nodepool1-96663640-vmss000000   Successfully upgraded node: aks-nodepool1-96663640-vmss000000
    4m          Normal    Drain     node/aks-nodepool1-96663640-vmss000000   Draining node: aks-nodepool1-96663640-vmss000000
    ...
    

Validar uma atualização

  • Confirme se a atualização foi bem-sucedida usando o az aks show comando.

    az aks show --resource-group myResourceGroup --name myAKSCluster --output table
    

    A saída de exemplo a seguir mostra que o cluster AKS executa o KubernetesVersion 1.27.3:

    Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
    ------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
    myAKSCluster  westus2      myResourceGroup  1.29.2               1.29.2                    Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.westus2.azmk8s.io
    

Eliminar o cluster

Como este tutorial é a última parte da série, convém excluir seu cluster AKS para evitar incorrer em cobranças do Azure.

  • Remova o grupo de recursos, o serviço de contêiner e todos os recursos relacionados usando o az group delete comando.

    az group delete --name myResourceGroup --yes --no-wait
    

Note

Quando você exclui o cluster, a entidade de serviço do Microsoft Entra usada pelo cluster AKS não é removida. Para obter passos sobre como remover o principal de serviço, consulte Considerações sobre e eliminação do principal de serviço AKS. Se você usou uma identidade gerenciada, a identidade é gerenciada pela plataforma e não exige que você provisione ou alterne nenhum segredo.

Próximos passos

Neste tutorial, você atualizou o Kubernetes em um cluster AKS. Você aprendeu a:

  • Identifique as versões atuais e disponíveis do Kubernetes.
  • Atualize os nós do Kubernetes.
  • Valide uma atualização bem-sucedida.

Para obter mais informações sobre o AKS, consulte a visão geral do AKS. Para obter orientação sobre como criar soluções completas com o AKS, consulte o Guia de solução do AKS.