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

Os administradores de plataforma que gerenciam um grande número de clusters geralmente têm problemas com o preparo das atualizações de vários clusters (por exemplo, atualizando a imagem do sistema operacional do nó ou as versões do Kubernetes) de forma segura e previsível. Para enfrentar esse desafio, o Azure Kubernetes Fleet Manager (Fleet) permite orquestrar atualizações em vários clusters usando execuções de atualização.

As execuções de atualização consistem em estágios, grupos e estratégias e podem ser aplicadas manualmente, para atualizações únicas ou automaticamente, para atualizações regulares contínuas usando perfis de atualização automática. Todas as atualizações são executadas (manuais ou automatizadas) pelas janelas de manutenção do cluster de membros de honra.

Este artigo aborda como usar perfis de atualização automática para acionar automaticamente execuções de atualização quando novas versões de imagem de nó ou Kubernetes são disponibilizadas.

Importante

Os recursos de visualização do Azure Kubernetes Fleet Manager estão disponíveis com base no autoatendimento e opt-in. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As visualizações do Azure Kubernetes Fleet Manager são parcialmente cobertas pelo suporte ao cliente com base no melhor esforço. Como tal, estas funcionalidades não se destinam a utilização em produção.

Pré-requisitos

  • Leia a visão geral conceitual dos perfis de atualização automática, que fornece uma explicação das configurações mencionadas neste guia.

  • Você deve ter um recurso de frota com um ou mais clusters de membros. Caso contrário, siga o início rápido para criar um recurso do Fleet e ingressar em clusters do Serviço Kubernetes do Azure (AKS) como membros.

  • Se você deseja usar uma estratégia de atualização, você deve configurá-la usando as instruções no artigo de instruções de execução de atualização. Você precisa do identificador de recurso da estratégia de atualização para usar com um perfil de atualização automática.

  • 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=<ask-cluster-name>
    
  • Você precisa da CLI do Azure versão 2.61.0 ou posterior instalada. Para instalar ou atualizar, consulte Instalar a CLI do Azure.

  • Você também precisa da fleet extensão da CLI do Azure versão 1.3.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
    

Nota

A atualização acionada pela atualização automática executa as janelas de manutenção planejada definidas no nível do cluster AKS. Para obter mais informações, consulte Manutenção planejada em vários clusters de membros, que explica como as execuções de atualização lidam com clusters de membros que foram configurados com janelas de manutenção planejadas.

Criar perfis de atualização automática

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

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

Atualizações do Kubernetes do canal estável

Atualize para a versão mais recente do patch Kubernetes suportado na versão secundária N-1, onde N é a versão secundária suportada mais recente.

Atualize os clusters de membros sequencialmente, um a um.

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

Atualize os clusters de 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 de 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 de membros executarão 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-type Consistent

Atualize os clusters de membros usando uma estratégia de atualização existente, usando a versão de imagem de nó mais recente disponível para cada região do Azure. Os clusters de 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-type Latest

Atualizações de imagem de nó

Atualize os nós com um VHD recém-corrigido contendo correções de segurança e bugs.

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

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

Atualize 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 

Ver perfil de atualização automática

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

Liste todos os perfis de atualização automática de 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 a seguir para excluir um perfil de atualização automática existente. É-lhe pedido que confirme a eliminação. Se você deseja excluir imediatamente o perfil, inclua --yes.

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

Validar a atualização automática

As atualizações automáticas acontecerão somente quando novas imagens do Kubernetes ou do nó forem disponibilizadas. Você pode verificar suas versões existentes como uma linha de base da seguinte maneira.

# 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}"

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