Automatize atualizações de Kubernetes e imagens de nó em vários clusters usando o Azure Kubernetes Fleet Manager

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

Manter os clusters atualizados de forma atempada e segura é uma preocupação fundamental dos administradores das plataformas. Ao adotar as Execuções de Atualização e as Estratégias do Azure Kubernetes Fleet Manager, pode utilizar perfis de atualização automática para automatizar a execução de execuções de atualização quando são lançadas novas versões do Kubernetes ou da imagem de nó.

Este artigo explica como utilizar perfis de atualização automática para criar e executar automaticamente execuções de atualização quando o Azure Kubernetes Service (AKS) disponibiliza novas versões do Kubernetes ou de imagens de nós.

Nota

As atualizações automáticas acionadas respeitam as janelas de manutenção planejadas que você definiu no nível do cluster AKS. Para mais informações, consulte manutenção planeada em clusters de múltiplos membros, que explica como as execuções de atualizações gerem os clusters de membros com janelas de manutenção planeada já configuradas.

Antes de começar

  • Defina as seguintes variáveis de ambiente para usar nos comandos CLI do Azure:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<aks-cluster-name>
    
  • Instalar a versão mais recente do CLI do Azure. Para instalar ou atualizar, consulte Instalar a CLI do Azure.

  • Instale a mais recente fleet extensão CLI do Azure. Use o az extension add comando para instalar a extensão.

    az extension add --name fleet
    

    Use o az extension update comando para atualizar para a versão mais recente da extensão.

    az extension update --name fleet
    

Nota

Clusters com pools de agentes criados a partir de snapshots de pool de nós são afetados da seguinte forma, com base no canal de atualização automatizada selecionado e na opção de imagem do nó:

  • Canal da imagem do nó: A imagem do nó é atualizada para a versão determinada pelo Fleet Manager. A referência ao snapshot (creationData) é removida do pool de agentes.
  • Canais Estável, Rápido, ou versão menor de alvo do Kubernetes com imagem de nó configurada para:
    • Imagem consistente: A imagem do nó é atualizada para a versão determinada pelo Fleet Manager. A referência ao snapshot (creationData) é removida do pool de agentes.
    • Imagem mais recente: O pool de agentes mantém a sua referência ao instantâneo (creationData), e a imagem do nó não é modificada.

Para mais informações, consulte compreender as atualizações de imagem de nós e snapshots.

Criar perfis de atualização automática

Crie perfis de atualização automática usando o az fleet autoupgradeprofile create comando.

Podes desativar um perfil de atualização automática incluindo a --disabled bandeira com o az fleet autoupgradeprofile create comando. Para reativar um perfil de atualização automática desativado, execute novamente o az fleet autoupgradeprofile create comando sem a --disabled bandeira.

Nota

Desativar um perfil de atualização automática não afeta nenhuma atualização em andamento. No entanto, o processo deixa de gerar novas atualizações até reativar o perfil.

Atualizações do canal estável do Kubernetes

Atualize para a mais recente versão de patch de Kubernetes suportada na versão menor N-1, onde N é a versão menor suportada mais recente.

Atualizar os clusters de membros um a um

Atualize os clusters de membros sequencialmente usando o az fleet autoupgradeprofile create comando.

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

Atualize clusters de membros utilizando uma estratégia de atualização existente

Atualize os clusters de membros utilizando uma estratégia de atualização existente. Utilize o comando az fleet autoupgradeprofile create com o parâmetro --update-strategy-id definido com o ID da 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 clusters de membros utilizando uma estratégia de atualização existente com imagem consistente do nó

Atualize os clusters membros usando uma estratégia de atualização existente e assegure que a mesma versão da imagem do nó é usada em todas as regiões do Azure. Use o az fleet autoupgradeprofile create comando com o --node-image-selection parâmetro definido como Consistent. Todos os clusters membros executam a mesma versão 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 Consistent

Atualize clusters membros utilizando uma estratégia de atualização existente com a imagem mais recente do nó

Atualize os clusters membros utilizando uma estratégia de atualização existente e assegure que a versão mais recente disponível da imagem do nó é usada para cada região do Azure. Use o az fleet autoupgradeprofile create comando com o --node-image-selection parâmetro definido como Latest. Os clusters membros podem executar múltiplas versões de imagem de nós.

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

Atualizações do canal de imagem do nó

Atualize os nós com uma imagem de máquina recentemente corrigida que inclua correções de segurança e correções de bugs.

Atualize as imagens dos nós uma a uma

Atualize as imagens dos nós dos clusters de membros sequencialmente, utilizando o comando az fleet autoupgradeprofile create.

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

Atualize as imagens dos nós utilizando uma estratégia de atualização existente

Atualize as imagens dos nós dos clusters-membro utilizando uma estratégia de atualização existente. Use o az fleet autoupgradeprofile create comando e defina o --update-strategy-id parâmetro para o ID da estratégia de atualização existente.

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

Atualizações menores de versão do Target Kubernetes

Atualize para uma versão menor Kubernetes alvo definida usando o --target-kubernetes-version parâmetro. Fornece a versão na {versão maior}.{ versão menor} (por exemplo, 1.33). A Atualização automática do Fleet Manager atualiza automaticamente os clusters membros para a última versão de patch da versão de destino especificada, assim que o patch esteja disponível.

Importante

Tenha em mente as seguintes informações ao utilizar o canal da versão menor do Target Kubernetes :

  • Você deve especificar o --target-kubernetes-version parâmetro. Este parâmetro não é suportado para outros canais de atualização automática (Rápido, Estável, Imagem de Nó e Patch de Segurança).
  • O sinalizador de suporte de longo prazo (LTS), --long-term-support, só está disponível ao utilizar o canal versão secundária de destino do Kubernetes. Para outros canais, defina este flag para False.
  • Só pode selecionar versões LTS Kubernetes (N-2) para um perfil de atualização automática com a --long-term-support bandeira. Para que a atualização automática da Frota continue a funcionar neste cenário, certifique-se de que os clusters na execução gerada da atualização estão todos ativados com LTS. Clusters não-LTS fazem com que a execução de atualização falhe quando o primeiro cluster não-LTS é encontrado.
  • Não podes definir a versão alvo do Kubernetes para uma versão futura que a AKS ainda não tenha lançado.

Atualizar clusters membros para uma versão menor específica do Kubernetes

Atualize clusters de membros para uma versão menor específica do Kubernetes usando o az fleet autoupgradeprofile create comando com o --target-kubernetes-version parâmetro definido para a versão desejada. O exemplo seguinte atualiza os clusters de membros para a versão 1.33 do Kubernetes.

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

Atualizar clusters membros com LTS ativado para uma versão menor específica do Kubernetes

Atualize os clusters membros com o LTS ativado para uma versão secundária específica do Kubernetes usando o comando az fleet autoupgradeprofile create com o parâmetro --target-kubernetes-version definido para a versão pretendida e a opção --long-term-support ativada. O exemplo seguinte atualiza clusters membros para a versão 1.29 do Kubernetes com LTS ativado.

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

Atualizações do canal de correções de segurança

Atualize os nós Linux com correções de segurança. Aplicar atualizações usando patches em tempo real sempre que possível. Caso contrário, implemente uma imagem de máquina recém-corrigida que contenha correções de segurança.

Atualizar os nós com atualizações de segurança um a um

Atualize as imagens dos nós dos clusters de membros sequencialmente, utilizando o comando az fleet autoupgradeprofile create.

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

Atualize os nós com patches de segurança utilizando uma estratégia de atualização existente

Atualize as imagens dos nós dos clusters-membro utilizando uma estratégia de atualização existente. Use o az fleet autoupgradeprofile create comando e defina o --update-strategy-id parâmetro para o ID da estratégia de atualização existente.

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

Ver perfis de atualização automática

Perfis de atualização automática são recursos ao nível da Frota. Não estão associados diretamente a clusters AKS individuais. Para determinar quais os perfis que podem atualizar os seus clusters AKS, liste primeiro os membros da Frota e confirme que os clusters são membros da Frota.

az fleet member list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --query "[].{memberName:name,clusterResourceId:clusterResourceId}" \
  --output table

Liste todos os perfis de atualização automática da Frota usando o az fleet autoupgradeprofile list comando.

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

Mostrar um perfil específico de atualização automática para a Frota usando o az fleet autoupgradeprofile show comando. Reveja, na saída, o canal, o estado e updateStrategyId.

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

Se updateStrategyId estiver vazio, o perfil utiliza a sequência de atualização Um a um e inclui sequencialmente os clusters membros da Frota. Se updateStrategyId contiver um ID de recurso, mostre a estratégia referenciada para rever os estágios, grupos ou selecionadores de membros que determinam quais os membros da Frota que a atualização gerada inclui.

PROFILE_STRATEGY_ID=$(az fleet autoupgradeprofile show \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --query updateStrategyId \
  --output tsv)

if [[ -n "$PROFILE_STRATEGY_ID" ]]; then
  az fleet updatestrategy show \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name "${PROFILE_STRATEGY_ID##*/}"
fi

Eliminar um perfil de atualização automática

Use o az fleet autoupgradeprofile delete comando para excluir um perfil de atualização automática existente. Depois de executar este comando, é solicitado confirmar a eliminação. Para ignorar a confirmação e eliminar imediatamente o perfil, inclua --yes no comando.

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

Nota

A exclusão de 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

Atualize para a mais recente versão de patch de Kubernetes suportada na versão menor N-1, onde N é a versão menor suportada mais recente.

  1. No portal do Azure, navegue até o recurso do Azure Kubernetes Fleet Manager.

  2. No menu de serviço, em Definições, selecione Atualização Multicluster>Perfis de autoupgrade>+ Criar.

  3. Em Criar um perfil de atualização automática, configure as seguintes opções:

    • Em detalhes da atualização automática:
      • Nome do perfil de atualização automática: Introduza um nome para o perfil de atualização automática.
      • Estado: Selecionar Ativado ou Desativado. Os perfis de atualização automática desativados não são acionados quando novas versões são lançadas.
      • Atualização da sequência: Selecione Fases ou Uma a uma.
    • Em gatilhos de atualização automática:
      • Canal: Selecione Estável.
      • Imagem do nó: Selecione Imagem mais recente ou Imagem Consistente.
    • No âmbito de Detalhes da Estratégia:
      • Se selecionou uma sequência de Atualização usando Etapas, selecione uma estratégia existente ou crie uma nova.
  4. Selecione Criar para criar o perfil de atualização automática.

    Captura de ecrã do painel do portal Azure Kubernetes Fleet Manager para criar o perfil de atualização automática usando o canal Stable.

Ver perfis de atualização automática

Perfis de atualização automática são recursos ao nível da Frota. Não estão associados diretamente a clusters AKS individuais. Para determinar quais os perfis que podem atualizar os seus clusters AKS, confirme que os clusters são membros da Frota e depois reveja os perfis da Frota e as suas sequências de atualização.

  1. No portal do Azure, navegue até o recurso do Azure Kubernetes Fleet Manager.
  2. No menu de serviço, selecione Membros da Frota e confirme que os seus clusters AKS aparecem na lista de membros.
  3. Em Definições, selecione Atualização multicluster>Perfis de atualização automática.
  4. Selecione um perfil de atualização automática para ver o seu canal, estado e sequência de atualização.
  5. Se a sequência de atualização for Uma a uma, o perfil inclui os clusters membros da Frota sequencialmente. Se a sequência de atualização usar Estágios, reveja os estágios, grupos e seletores de membros da estratégia associada para determinar quais os membros da Frota que as atualizações geradas incluem.

Eliminar um perfil de atualização automática

  1. No portal do Azure, navegue até o recurso do Azure Kubernetes Fleet Manager.
  2. No menu de serviço, em Definições, selecione Atualização> de MulticlusterPerfis de atualização automática.
  3. Selecione o perfil que quer eliminar e depois selecione Eliminar>Sim para confirmar.

Nota

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

Validar atualizações automáticas

As atualizações automáticas só acontecem quando há novos Kubernetes ou imagens de nós disponíveis. Quando a atualização automática é acionada, uma execução de atualização vinculada é criada, para que você possa usar gerenciar execução de atualização para ver os resultados da atualização automática.

Também pode verificar as suas versões existentes como referência.

Obtenha a versão atual do Kubernetes de um cluster membro utilizando o comando az aks show com o parâmetro --query para filtrar a saída pela propriedade currentKubernetesVersion.

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion

Obtenha a versão atual da imagem de nó de um cluster membro utilizando o comando az aks show com o parâmetro --query para filtrar a saída pela propriedade nodeImageVersion.

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

Quando as atualizações terminam, pode reexecutar estes comandos e visualizar as versões atualizadas que são implementadas.

Gerar uma execução de atualização a partir de um perfil de atualização automática

Depois de criar um perfil de atualização automática, pode passar algum tempo até que uma nova versão de Kubernetes ou imagem de nó acione a atualização automática para criar e executar uma execução de atualização. A atualização automática permite-lhe gerar uma nova atualização a qualquer momento usando o az fleet autoupgradeprofile generate-update-run comando. A execução de atualização resultante é baseada na versão atual do Kubernetes ou na versão da imagem do nó publicada pelo AKS.

Para mais informações sobre como criar uma execução de atualização on-demand a partir de um perfil de atualização automática, consulte Gerar uma execução de atualização a partir de um perfil de atualização automática.