Definir estratégias de atualização reutilizáveis usando o Azure Kubernetes Fleet Manager

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

Os administradores podem controlar a sequência de atualizações para clusters gerenciados pela Frota definindo uma série de estágios e grupos. Eles podem configurar quando as aprovações e pausas devem ocorrer dentro desses estágios e grupos. Toda a configuração pode ser salva como uma estratégia de atualização que pode ser gerenciada independentemente de execuções de atualização ou atualizações automáticas, permitindo que as estratégias sejam reutilizados conforme necessário.

Este artigo aborda como definir estratégias de atualização usando grupos e estágios.

Um diagrama mostrando um exemplo de estratégia de atualização que contém dois estágios de atualização. Cada estágio de atualização contém dois grupos de atualização. Cada grupo de atualização contém dois clusters de membros.

Pré-requisitos

  • Leia a visão geral conceitual das atualizações da Frota, que fornece uma explicação das execuções de atualização, estágios, grupos e estratégias referenciadas neste guia.

  • 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.

  • Defina as seguintes variáveis de ambiente:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export CLUSTERID=<aks-cluster-resource-id>
    export STRATEGY=<strategy-name>
    
  • Se você estiver seguindo as instruções da CLI do Azure neste artigo, precisará 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.6.0 ou posterior, que pode ser instalada executando o seguinte comando:

    az extension add --name fleet
    

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

    az extension update --name fleet
    

Criar uma estratégia de atualização usando grupos de atualização

Os clusters podem ser selecionados em estratégias de atualização atribuindo-os a um único grupo de atualizações. Você pode definir uma estratégia de atualização que atribui esses grupos de atualização a estágios. Em um estágio de atualização, as atualizações são aplicadas a cada grupo de atualizações em paralelo. Em um grupo de atualização, os clusters membros são atualizados sequencialmente.

Observação

Um 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 atribuídos a ele. Um grupo de atualização 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 com referências a um grupo de atualização comum forem excluídos, esse grupo de atualização específico deixará de existir também.

Atribuir clusters a grupos de atualização

Atribua ao grupo ao adicionar o cluster membro à frota

  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 Cluster membros>Adicionar.

    Captura de tela da página do portal do Azure para o Gerenciador de Frota de Kubernetes do Azure para adicionar clusters de membros.

  3. Selecione o cluster que você deseja adicionar e selecione Avançar: Examinar + adicionar.

  4. Insira o nome do grupo de atualização ao qual deseja atribuir o cluster e selecione Adicionar.

    Captura de tela da página do portal do Azure na etapa de revisão e adição do Gerenciador de Frota de Kubernetes do Azure para clusters membros.

Atribua um cluster membro a um grupo de atualização ao adicionar o cluster membro à frota usando o comando az fleet member create com o parâmetro --update-group definido como o nome do grupo de atualização.

az fleet member create \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name member1 \
    --member-cluster-id $CLUSTERID \
    --update-group group-1a

Atribuir um membro da frota existente a um grupo de atualização

  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 Cluster membros.

  3. Selecione os clusters que você deseja atribuir a um grupo de atualização e selecione Atribuir grupo de atualização

    Captura de tela da página no portal do Azure para atribuir clusters de membros existentes a um grupo.

  4. Insira o nome do grupo de atualização ao qual deseja atribuir o cluster e selecione Atribuir.

    Captura de tela da página do portal do Azure para clusters membros que mostra o formulário para atualização do grupo de um cluster membro.

Atribua um membro de frota existente a um grupo de atualização usando o comando az fleet member update com o sinalizador --update-group definido com o nome do grupo de atualização.

az fleet member update \
 --resource-group $GROUP \
 --fleet-name $FLEET \
 --name member1 \
 --update-group group-1

Criar uma estratégia de atualização

Uma estratégia de atualização consiste em um ou mais estágios, em que um estágio pode conter um ou mais grupos de atualização.

  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 Atualização de múltiplos clusters>Estratégias e, em seguida, Criar.

  3. Insira um nome para a estratégia.

  4. Na primeira vez que você exibir a página, um diagrama de explicação de estratégia de atualização é exibido, o que pode ajudar a visualizar como as estratégias funcionam.

    Captura de tela do portal do Azure mostrando a criação da estratégia de atualização.

  5. Selecione Criar Estágio e insira:

    • Nome do estágio - nome do estágio - deve ser único entre todos os nomes de estágio na estratégia.
    • (Opcional) Aprovações de estágio – selecione essa opção se você quiser aguardar uma aprovação antes que essa fase seja iniciada ou depois que ela for concluída. Para obter mais informações, confira Adicionar aprovações a grupos e etapas de atualização.
    • (Opcional) Pausar após o estágio – selecione essa opção se quiser definir uma pausa antes de passar para o próximo estágio.
    • (Opcional) Duração da pausa – selecione uma duração predefinida ou insira um valor personalizado em segundos.

    Uma captura de tela do portal do Azure mostrando a criação do estágio de estratégia de atualização do Gerenciador de Frota de Kubernetes do Azure.

  6. Atribua um ou mais Grupos de Atualização ao estágio e selecione Criar.

    Observação

    O número máximo de Grupos de Atualização em cada Estágio de Atualização é 50.

    Uma captura de tela do portal do Azure mostrando a criação do estágio de estratégia de atualização do Gerenciador de Frota de Kubernetes do Azure, selecionando grupos de atualização a serem incluídos.

Para esse cenário, criamos estágios e grupos para corresponder aos detalhes usados para o processo do portal do Azure.

  1. Crie um arquivo JSON para definir os estágios e grupos para a execução da atualização. Os estágios são executados sequencialmente na ordem em que aparecem no arquivo JSON. Os grupos são executados em paralelo em cada estágio, portanto, a ordenação não é importante. O arquivo de exemplo a seguir (example-stages.json) define uma estratégia com dois estágios e inclui configurações opcionais maxConcurrency :

    {
        "stages": [
            {
                "name": "stage-1",
                "maxConcurrency": "7",
                "groups": [
                    {
                        "name": "group-1",
                        "maxConcurrency": "3"
                    },
                    {
                        "name": "group-2",
                        "maxConcurrency": "50%"
                    }
                ],
                "afterStageWaitInSeconds": 300
            },
            {
                "name": "stage-2",
                "maxConcurrency": "100%",
                "groups": [
                    {
                        "name": "group-3",
                        "maxConcurrency": "2"
                    }
                ]
            }
        ]
    }
    

    Observação

    O maxConcurrency campo é opcional e controla quantos clusters podem ser atualizados simultaneamente no nível do estágio ou do grupo. Use um valor maior para atualizar clusters mais rapidamente em sua frota ou um valor menor para uma distribuição mais controlada que limita o raio de explosão se surgirem problemas.

    Neste exemplo, stage-1 define maxConcurrency como "7", o que permite que até "7" clusters nesta fase atualizem simultaneamente. Dentro de stage-1, group-1 limita a simultaneidade aos clusters "3", o que significa que até "3" nesse grupo pode ser atualizado simultaneamente. group-2 permite que até "50%" seus clusters atualizem simultaneamente (por exemplo, se o grupo contiver 4 clusters, até 2 poderão ser atualizados simultaneamente).

    Os valores podem ser um inteiro fixo (por exemplo, "3") ou um percentual (por exemplo, "100%"). Se omitido, o sistema aplicará valores padrão. Para obter detalhes sobre como esses valores são resolvidos e seus limites superiores, consulte Máxima simultaneidade (versão prévia).

  2. Crie uma nova estratégia de atualização usando o comando az fleet updatestrategy create com o sinalizador --stages definido como o nome do seu arquivo JSON.

    az fleet updatestrategy create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name $STRATEGY \
     --stages example-stages.json
    

Próximas etapas

Você pode usar uma estratégia de atualização como parte de uma execução de atualização manual ou de um perfil de atualização automática. Consulte: