Orquestre atualizações em vários clusters usando o Azure Kubernetes Fleet Manager

Os administradores de plataforma que gerenciam frotas Kubernetes com grande número de clusters geralmente têm problemas com o preparo de suas atualizações de forma segura e previsível em vários clusters. Para resolver esse problema, o Kubernetes Fleet Manager (Fleet) permite orquestrar atualizações em vários clusters usando execuções de atualização, estágios, grupos e estratégias.

Screenshot of the Azure portal pane for a fleet resource, showing member cluster Kubernetes versions and node images in use across all node pools of member clusters.

Pré-requisitos

  • Leia a visão geral conceitual desse recurso, que fornece uma explicação de estratégias de atualização, execuções, estágios e referências de grupos neste documento.

  • 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. Este passo a passo demonstra um recurso de frota com cinco clusters membros do AKS como exemplo.

  • Defina as seguintes variáveis de ambiente:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    
  • Se você estiver seguindo as instruções da CLI do Azure neste artigo, precisará da CLI do Azure versão 2.53.1 ou posterior instalada. Para instalar ou atualizar, consulte Instalar a CLI do Azure.

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

Atualizar todos os clusters um a um

  1. Na página do recurso do Azure Kubernetes Fleet Manager, vá para o menu Atualização de vários clusters e selecione Criar.

  2. Você pode escolher um por um ou Estágios.

    Screenshot of the Azure portal pane for creating update runs that update clusters one by one in Azure Kubernetes Fleet Manager.

  3. Para o escopo de atualização, você pode optar por atualizar a versão do Kubernetes e a versão da imagem do nó ou pode atualizar apenas a versão da imagem do Node.

    Screenshot of the Azure portal pane for creating update runs. The upgrade scope section is shown.

    Para a imagem do nó, as seguintes opções estão disponíveis:

    • Mais recente: atualiza cada cluster AKS na execução de atualização para a imagem mais recente disponível para esse cluster em sua região.
    • Consistente: Como é possível para uma execução de atualização ter clusters AKS em várias regiões onde as imagens de nó mais recentes disponíveis podem ser diferentes (verifique o rastreador de liberação para obter mais informações). A execução da atualização seleciona a imagem comum mais recente em todas essas regiões para obter consistência.

Atualizar clusters em uma ordem específica

Os grupos e estágios de atualização fornecem mais controle sobre a sequência que as execuções de atualização seguem quando você atualiza os clusters. Dentro de um estágio de atualização, as atualizações são aplicadas a todos os diferentes grupos de atualização em paralelo; Dentro de um grupo de atualização, os clusters de membros são atualizados sequencialmente.

Atribuir um cluster a um grupo de atualização

Você pode atribuir um cluster de membros a um grupo de atualização específico de duas maneiras.

  • Atribua ao grupo ao adicionar cluster de membros à frota. Por exemplo:
  1. Na página do seu recurso do Azure Kubernetes Fleet Manager, vá para Clusters de membros.

    Screenshot of the Azure portal page for Azure Kubernetes Fleet Manager member clusters.

  2. Especifique o grupo de atualização ao qual o cluster membro deve pertencer.

    Screenshot of the Azure portal page for adding member clusters to Azure Kubernetes Fleet Manager and assigning them to groups.

  • O segundo método é atribuir um membro da frota existente a um grupo de atualização. Por exemplo:
  1. Na página do recurso do Azure Kubernetes Fleet Manager, navegue até Clusters de membros. Escolha os clusters de membros desejados e selecione Atribuir grupo de atualização.

    Screenshot of the Azure portal page for assigning existing member clusters to a group.

  2. Especifique o nome do grupo e selecione Atribuir.

    Screenshot of the Azure portal page for member clusters that shows the form for updating a member cluster's group.

Nota

Qualquer membro da frota só pode fazer parte de um grupo de atualização, mas um grupo de atualização pode ter vários membros da frota dentro dele. Um grupo de atualização em si não é um tipo de recurso separado. Os grupos de atualização são apenas cadeias de caracteres que representam referências dos membros da frota. Assim, se todos os membros da frota com referências a um grupo de atualização comum forem excluídos, esse grupo de atualização específico também deixará de existir.

Definir uma execução de atualização e estágios

Você pode definir uma execução de atualização usando estágios de atualização para ordenar sequencialmente a aplicação de atualizações para diferentes grupos de atualização. Por exemplo, um primeiro estágio de atualização pode atualizar clusters de membros do ambiente de teste e um segundo estágio de atualização atualiza subsequentemente os clusters de membros do ambiente de produção. Você também pode especificar um tempo de espera entre os estágios de atualização.

  1. Na página do recurso do Azure Kubernetes Fleet Manager, navegue até Atualização de vários clusters e selecione Criar.

  2. Selecione Estágios e, em seguida, escolha Imagem do nó (mais recente) + Versão do Kubernetes ou Imagem do nó (mais recente), dependendo do escopo de atualização desejado.

  3. Em Estágios, selecione Criar palco. Agora você pode especificar o nome do estágio e a duração a aguardar após cada estágio.

    Screenshot of the Azure portal page for creating a stage and defining wait time.

  4. Escolha os grupos de atualização que você deseja incluir nesta etapa.

    Screenshot of the Azure portal page for stage creation that shows the selection of upgrade groups.

  5. Depois de definir todos os estágios e ordená-los usando os controles Mover para cima e Mover para baixo , prossiga com a criação da execução da atualização.

  6. No menu Atualização de vários clusters , escolha a execução da atualização e selecione Iniciar.

Criar uma execução de atualização usando estratégias de atualização

Na seção anterior, a criação de uma execução de atualização exigia que os estágios, grupos e sua ordem fossem especificados a cada vez. As estratégias de atualização simplificam isso, permitindo que você armazene modelos para execuções de atualização.

Nota

É possível criar várias execuções de atualização com nomes exclusivos da mesma estratégia de atualização.

Ao criar suas execuções de atualização, você recebe uma opção para criar uma estratégia de atualização ao mesmo tempo, salvando efetivamente a execução como um modelo para execuções de atualização subsequentes.

  1. Salve uma estratégia de atualização ao criar uma execução de atualização:

    A screenshot of the Azure portal showing update run stages being saved as an update strategy.

  2. A estratégia de atualização que você criou pode ser referenciada posteriormente ao criar novas execuções de atualização subsequentes:

    A screenshot of the Azure portal showing the creation of a new update run. The 'Copy from existing strategy' button is highlighted.