Compartilhar via


Automatizar as atualizações do Kubernetes e das imagens de nós em vários clusters usando o Gerenciador de Frota de Kubernetes do Azure

Aplica-se a: ✔️ Gerenciador de Frota ✔️ Gerenciador de Frota com cluster hub

Garantir que os clusters sejam mantidos atualizados em tempo hábil e seguro é uma preocupação fundamental dos administradores da plataforma. Depois que um administrador adota Execuções de Atualização e Estratégias do Gerenciador de Frota do Kubernetes do Azure, ele pode usar perfis de atualização automática para automatizar a execução dessas execuções quando novas versões do Kubernetes ou imagens de nós forem lançadas.

Este artigo aborda como usar perfis de upgrade automático para criar e executar automaticamente atualizações quando novas versões de imagem do Kubernetes ou de imagem de nó são disponibilizadas pelo AKS.

Observação

As execuções de atualização disparadas por atualização automática respeitam as janelas de manutenção planejadas que você configura no nível do cluster do AKS. Para obter mais informações, consulte a manutenção planejada em vários clusters de membros que explica como as execuções de atualização lidam com clusters membros com janelas de manutenção planejada configuradas.

Antes de começar

Criar perfis de atualização automática

Comece concluindo estas etapas para garantir que seu ambiente esteja configurado corretamente.

  • Defina as seguintes variáveis de ambiente:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<aks-cluster-name>
    
  • Você precisa da CLI do Azure versão 2.70.0 ou posterior instalada. Para instalar ou atualizar, confira Instalar a CLI do Azure.

  • Você também precisa da extensão da CLI do fleet Azure versão 1.5.0 ou posterior, que pode ser instalada executando o seguinte comando:

    az extension add --name fleet
    

    Execute o seguinte comando para atualizar para a versão mais recente da extensão lançada:

    az extension update --name fleet
    

Use o comando az fleet autoupgradeprofile create para criar perfis, conforme mostrado.

Você pode criar um perfil de atualização automática desabilitado passando o argumento --disabled ao usar o comando create. Para habilitar o perfil de atualização automática, você precisa reemitir o comando create inteiro e omitir o argumento --disabled.

Observação

Desabilitar um perfil de atualização automática não afeta nenhuma execução de atualização in-progess, no entanto, nenhuma nova execução de atualização é gerada até que você habilite novamente o perfil.

Atualizações do canal estável do Kubernetes

Atualize para a versão de patch do Kubernetes mais recente com suporte na versão secundária N-1, em que N é a versão secundária com suporte mais recente.

Atualize os clusters membros sequencialmente, um por um.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel Stable

Atualize os clusters membros usando uma estratégia de atualização existente.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable

Atualize os clusters membros usando uma estratégia de atualização existente, garantindo que a mesma versão de imagem de nó seja usada em todas as regiões do Azure. Todos os clusters membros executam a mesma versão de imagem do nó.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Consistent

Atualize os clusters membros usando uma estratégia de atualização existente, por meio da última versão da imagem de nó disponível para cada região do Azure. Os clusters membros podem executar várias versões de imagem de nó.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Latest

Atualizações da versão secundária do Kubernetes de destino (versão prévia)

Atualize para uma versão menor do Kubernetes de destino definida usando o parâmetro --target-kubernetes-version, fornecendo a versão no formato {versão principal}.{versão menor} (por exemplo, 1.33). A atualização automática da frota atualiza automaticamente os clusters de membros para a versão de patch mais recente da versão de destino especificada quando o patch está disponível.

Importante

Os recursos de versão prévia do Gerenciador de Frotas do Kubernetes do Azure estão disponíveis por autoatendimento e opt-in. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. A versão prévia do Gerenciador de Frota de Kubernetes do Azure é parcialmente coberta pelo suporte ao cliente com base no melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção.

Observação

  • Ao usar o TargetKubernetesVersion canal, você deve especificar o --target-kubernetes-version parâmetro. Para outros canais (Rapid, Stable, NodeImage), esse parâmetro não tem suporte.

  • O sinalizador (LTS) --long-term-support só está disponível ao usar o canal TargetKubernetesVersion. Para outros canais, esse sinalizador deve ser definido como False.

  • Você não pode definir a versão do Kubernetes de destino para uma versão futura do Kubernetes ainda não lançada pelo AKS.

  • Você só pode selecionar versões LTS do Kubernetes (N-2) para um perfil de atualização automática passando o flag --long-term-support. Para que a autoatualização da frota continue funcionando nesse cenário, você também deve garantir que os clusters na execução de atualização gerada estejam todos compatíveis com LTS. Clusters não LTS fazem com que a execução da atualização falhe quando o primeiro cluster não LTS é encontrado.

Atualize automaticamente os clusters de membros para o patch mais recente do Kubernetes versão 1.33.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.33"

Atualize automaticamente os clusters de membro com LTS habilitado para o patch mais recente da versão secundária do Kubernetes 1.29, que atualmente está disponível apenas por meio do AKS LTS.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.29" \
  --long-term-support

Atualizações de imagens de nodos

Atualize os nós com uma imagem de computador recentemente corrigida contendo correções de segurança e de falhas.

Atualize imagens de nó para clusters membros, processando clusters sequencialmente um por um.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel NodeImage

Atualize as imagens de nó para clusters membros, processando clusters usando uma estratégia de atualização existente.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel NodeImage 

Exibir o perfil de atualização automática

Você pode usar os comandos az fleet autoupgradeprofile list ou az fleet autoupgradeprofile show para exibir o perfil de atualização automática.

Listar todos os perfis de atualização automática para uma Frota.

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET

Mostrar um perfil de atualização automática específico para uma Frota.

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Excluir perfil de atualização automática

Use o comando az fleet autoupgradeprofile delete para excluir um perfil de atualização automática existente. Você receberá uma solicitação para confirmar a exclusão. Se você quiser excluir imediatamente o perfil, inclua --yes.

az fleet autoupgradeprofile delete \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Observação

Excluir um perfil de atualização automática não afeta nenhuma execução de atualização em andamento.

Criar perfis de atualização automática

  1. No portal do Azure, navegue até o recurso do Gerenciador de Frota de Kubernetes do Azure.

  2. No menu de serviço, em Configurações, selecione Perfis de atualização automática>Atualização de vários clusters.

  3. Selecione Criar, insira um nome para o perfil e selecione se o perfil está habilitado ou não. Perfis de atualização automática desabilitados não são disparados quando novas versões são lançadas.

  4. Selecione a sequência de atualização de Estágios ou Um por vez.

    Captura de tela do painel do portal do Azure do Gerenciador de Frota de Kubernetes do Azure para criar um perfil de atualização automática que atualiza clusters usando uma estratégia.

  5. Selecione uma das seguintes opções para o Canal:

    • Estável – Atualize clusters com patches para a versão secundária do Kubernetes N-1 em disponibilidade geral.
    • Rápido – atualizar clusters com patches para a versão secundária (N) mais recente (N) em disponibilidade geral.
    • Imagem do nó – Atualize somente a versão da imagem do nó.
    • Versão secundária de destino do Kubernetes (versão prévia) – atualize os clusters para a versão mais recente do patch da versão secundária especificada do Kubernetes de destino quando o patch estiver disponível.

    Captura de tela do painel do portal do Azure do Gerenciador de Frota de Kubernetes do Azure para criar o perfil de atualização automática, definindo como a atualização é disparada.

  6. Se você selecionar o canal da versão secundária do Kubernetes de destino (versão prévia), poderá escolher a versão secundária do Kubernetes a ser usada como um gatilho:

    • Permitir versões secundárias do LTS: permite a seleção de versões secundárias do Kubernetes disponíveis apenas para clusters LTS (suporte de longo prazo) do AKS.
    • Versão menor do Kubernetes de destino: Selecione o disparador de versão menor do Kubernetes. Os clusters na menor atualização secundária são atualizados para essa versão primeiro e, em seguida, somente as atualizações de patch serão aplicadas.

    Captura de tela do painel do portal do Azure Kubernetes Fleet Manager para criar o perfil de atualização automática, definindo qual versão menor do Kubernetes será usada como gatilho.

    Observação

    A opção Permitir versões secundárias do LTS só oferece suporte a execuções de atualização em clusters que tenham o LTS habilitado. Encontrar um cluster não LTS faz com que a execução da atualização falhe.

  7. Se você selecionar o canal Estável, Rápido ou Versão secundária do Kubernetes de destino (versão prévia), poderá escolher como as atualizações da imagem do nó serão aplicadas:

    • Imagem mais recente: atualiza todos os clusters do AKS no perfil de atualização automática para a imagem mais recente disponível para esse cluster em sua região do Azure.
    • Imagem consistente: é possível que uma atualização automática tenha clusters AKS em várias regiões do Azure em que as imagens de nó disponíveis mais recentes podem ser diferentes (verifique o rastreador de versão do AKS para obter mais informações). Selecionar essa opção garante que a atualização automática escolha a imagem comum mais recente em todas as regiões do Azure para obter consistência.

    Observação

    O canal de Imagem do nó sempre usa uma imagem consistente.

  8. Se você selecionou uma sequência de atualizações usando Estágios, selecione ou crie uma Estratégia.

    Captura de tela do painel do portal do Azure do Gerenciador de Frota de Kubernetes do Azure para criar o perfil de atualização automática, selecionando a estratégia de atualização a ser usada.

  9. Selecione Criar para criar o perfil de atualização automática.

Exibir o perfil de atualização automática

  1. No portal do Azure, navegue até o recurso do Gerenciador de Frota de Kubernetes do Azure.

  2. No menu de serviço, em Configurações, selecione Perfis de atualização automática>Atualização de vários clusters.

    Captura de tela do painel do portal do Azure do Gerenciador de Frota de Kubernetes do Azure para exibir perfis de atualização automática disponíveis.

  3. Para exibir sua configuração, selecione o perfil de atualização automática desejado.

    Captura de tela do painel do portal do Azure do Gerenciador de Frota de Kubernetes do Azure mostrando a configuração de um único perfil de atualização automática.

Excluir perfil de atualização automática

  1. No portal do Azure, navegue até o recurso do Gerenciador de Frota de Kubernetes do Azure.

  2. No menu de serviço, em Configurações, selecione Perfis de atualização automática>Atualização de vários clusters.

    Captura de tela do painel do portal do Azure do Gerenciador de Frota de Kubernetes do Azure para exibir perfis de atualização automática disponíveis.

  3. Selecione o perfil desejado na lista e, em seguida, selecione Excluir para excluir o perfil.

Observação

Excluir um perfil de atualização automática não afeta nenhuma execução de atualização em andamento.

Validar a atualização automática

As atualizações automáticas ocorrerão somente quando novas imagens do Kubernetes ou do nó forem disponibilizadas. Quando a atualização automática é disparada, uma execução de atualização vinculada é criada, para que você possa usar a execução de gerenciamento de atualização para visualizar os resultados da atualização automática.

Também é possível verificar suas versões existentes como uma linha de base da maneira a seguir.

# Get Kubernetes version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion
# Get NodeImage version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

Depois que as execuções de atualização forem concluídas, você poderá executar novamente esses comandos e exibir as versões atualizadas implantadas.

Gerar uma execução de atualização por meio de um perfil de atualização automática

Quando você cria um perfil de upgrade automático, pode levar algum tempo até que uma nova versão de imagem do Kubernetes ou do nó acione o upgrade automático para criar e executar uma atualização.

A atualização automática permite que você gere uma nova execução de atualização a qualquer momento usando o az fleet autoupgradeprofile generate-update-run comando. A execução de atualização resultante baseia-se na versão atual da imagem do Kubernetes ou do nó publicada pelo AKS.

Para obter mais informações sobre como criar uma atualização sob demanda executada a partir de um perfil de atualização automática, consulte gerar uma execução de atualização de um perfil de atualização automática.

Próximas etapas