Orquestrar atualizações em vários clusters usando o Gerenciador de Frota de Kubernetes do Azure
Os administradores da plataforma que gerenciam as frotas do Kubernetes com um grande número de clusters geralmente têm problemas com o preparo de suas atualizações de maneira segura e previsível em vários clusters. Para resolver esse problema, o Gerenciador de Frota de Kubernetes (Frota) permite orquestrar atualizações em vários clusters usando execuções, fases, grupos e estratégias de atualização.
Pré-requisitos
Leia a visão geral conceitual desse recurso, que fornece uma explicação das estratégias de atualização, execuções, estágios e referências de grupos nesse documento.
Você tem um recurso de frota com um ou mais clusters membros. Caso contrário, siga o início rápido para criar um recurso de Frota e ingressar clusters do AKS (Serviço de Kubernetes do Azure) 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 nesta página, precisará da CLI do Azure versão 2.53.1 ou posterior instalada. Para instalar ou atualizar, confira Instalar a CLI do Azure.
Você também precisará da extensão da CLI do Azure
fleet
, 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
Observação
As execuções de atualização respeitam as janelas de manutenção planejadas que você configura no nível do cluster do AKS. Para obter mais informações, confira o artigo manutenção planejada em vários clusters membros, que explica como as execuções de atualização lidam com clusters membros que foram configurados com janelas de manutenção planejadas.
A execução de atualização dá suporte a duas opções para a sequência na qual os clusters são atualizados:
- Um de cada vez: se controlar a sequência na qual os clusters são atualizados não for importante para você, a opção
one-by-one
fornece uma abordagem simples para fazer o upgrade de todos os clusters membros da frota em sequência, um de cada vez - Controlar a sequência de clusters com o uso de grupos e estágios de atualização: se quiser controlar a sequência na qual os clusters são atualizados, você pode estruturar os clusters membros em grupos e estágios de atualização. Além disso, essa sequência pode ser armazenada como um modelo, na forma de uma estratégia de atualização. Mais tarde, as execuções de atualização poderão ser criadas a partir de estratégias de atualização, em vez de definir a sequência sempre que alguém precisar criar uma execução de atualização baseada em estágios.
Atualizar todos os clusters individualmente
Na página do recurso do Gerenciador de Frota de Kubernetes do Azure, acesse o menu Atualização de vários clusters e selecione Criar.
A opção um de cada vez faz o upgrade de todos os clusters membros da frota em sequência, um de cada vez.
Para o escopo do upgrade, você pode escolher uma dessas três opções:
- Versão do Kubernetes tanto para o plano de controle quanto para os pools de nós
- Versão do Kubernetes somente para o plano de controle do cluster
- Somente versão da imagem do nó
Para a imagem do nó, as seguintes opções estão disponíveis:
- Última: atualiza todos os clusters do AKS na execução da 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 em que as imagens de nó disponíveis mais recentes podem ser diferentes (confira o rastreador de versões para obter mais informações). A execução de atualização escolhe a imagem comum mais recente em todas essas regiões para obter consistência.
Clusters de atualização em uma ordem específica
Os grupos e fases de atualização fornecem mais controle sobre a sequência que as execuções de atualização seguem quando você está atualizando os clusters. Em um estágio de atualização, as atualizações são aplicadas a todos os diferentes grupos de atualização em paralelo. Em um grupo de atualização, os clusters membros são atualizados sequencialmente.
Atribuir um cluster a um grupo de atualizações
Você pode atribuir um cluster membro a um grupo de atualizações específico de duas maneiras.
- Atribua ao grupo ao adicionar o cluster membro à frota. Por exemplo:
- O segundo método é atribuir um membro da frota existente a um grupo de atualizações. Por exemplo:
Observação
Qualquer membro da frota só pode fazer parte de um grupo de atualizações, mas um grupo de atualizações pode ter vários membros da frota dentro dele. Um grupo de atualizações em si não é um tipo de recurso separado. Os grupos de atualizações são apenas cadeias de caracteres que representam referências dos membros da frota. Portanto, se todos os membros da frota que têm referências a um grupo de atualizações comum forem excluídos, esse grupo de atualizações específico também deixará de existir.
Definir a execução de uma atualização e fases
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 poderá atualizar os clusters membros do ambiente de testes e, a seguir, um segundo estágio de atualização irá atualizar os clusters membros do ambiente de produção. Você também pode especificar um tempo de espera entre as fases da atualização.
Na página do seu recurso do Gerenciador de Frota de Kubernetes do Azure, navegue até Atualização multicluster. Na guia Execuções, selecione Criar.
Forneça um nome para sua execução de atualização e selecione "Estágios" para o tipo de sequência de atualização.
Escolha Criar Estágio. Agora você pode especificar o nome da fase e a duração a ser aguardada após cada fase.
Escolha os grupos de atualizações que você deseja incluir nessa fase.
Após definir todos os seus estágios, você poderá ordená-los usando os controles Mover para cima e Mover para baixo.
Para o escopo do upgrade, você pode escolher uma dessas três opções:
- Versão do Kubernetes tanto para o plano de controle quanto para os pools de nós
- Versão do Kubernetes somente para o plano de controle do cluster
- Somente versão da imagem do nó
Para a imagem do nó, as seguintes opções estão disponíveis:
- Última: atualiza todos os clusters do AKS na execução da 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 em que as imagens de nó disponíveis mais recentes podem ser diferentes (confira o rastreador de versões para obter mais informações). A execução de atualização escolhe a imagem comum mais recente em todas essas regiões para obter consistência.
Clique em Criar na parte inferior da página para criar a execução da atualização. Especificar os estágios e sua ordem sempre que for preciso criar uma execução de atualização pode se tornar repetitivo e trabalhoso. As estratégias de atualização simplificam essa tarefa permitindo que você armazene modelos para as execuções da atualização. Para obter mais informações, confira criação e uso de estratégias de atualização.
No menu Atualização de vários clusters, escolha a execução da atualização e selecione Iniciar.
Criar uma execução da atualização usando estratégias de atualização
A criação de uma execução de atualização costumava requerer que os estágios, grupos e sua respectiva ordem fossem especificados todas as vezes. As estratégias de atualização simplificam essa tarefa permitindo que você armazene modelos para as execuções da atualização.
Observação
É possível criar várias execuções da atualização com nomes exclusivos da mesma estratégia de atualização.
Criar uma estratégia de atualização: existem duas maneiras de criar uma estratégia de atualização:
Abordagem 1: você pode salvar uma estratégia de atualização ao criar uma execução de atualização.
Abordagem 2: você pode navegar até Atualização multicluster e escolher Criar na guia Estratégia.
Usar uma estratégia de atualização para criar a execução de atualização: a estratégia de atualização que você criar poderá ser usada como referência posteriormente, na criação de novas execuções de atualização subsequentes:
Gerenciar uma execução de atualização
Existem algumas opções para gerenciar as execuções de atualização:
Na guia Atualização multicluster do recurso de frota, você pode Iniciar uma execução de atualização que esteja no estado Não iniciada ou Com falha.
Na guia Atualização multicluster do recurso de frota, você pode Interromper uma execução de atualização Em execução no momento.
Em qualquer execução de atualização nos estados Não iniciada, Com falha ou Em execução, você pode selecionar qualquer Estágio e Ignorar o upgrade.
Da mesma forma, você também pode ignorar o upgrade no nível de grupo de atualizações ou de cluster de membros.
Para obter mais informações, confira o artigo visão geral conceitual dos estados de execução de atualizações e o comportamento ignorar em execuções/estágios/grupos.
Azure Kubernetes Service