Configure estratégias de atualização de nós


Enquanto administrador da plataforma, pode configurar uma estratégia de atualização de nós para ajustar a forma como o GKE atualiza os nós nos seus clusters do Google Kubernetes Engine (GKE). Para saber mais acerca das estratégias de atualização de nós, consulte o artigo Estratégias de atualização de nós.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Configure uma estratégia de atualização de nós

Quando configurar os conjuntos de nós do cluster, pode selecionar e configurar uma das estratégias de atualização de nós suportadas, nomeadamente surge ou blue-green. A utilização destas estratégias de atualização permite-lhe otimizar o processo de atualização do node pool com base nas necessidades do ambiente do cluster.

Configure atualizações de picos

As atualizações rápidas permitem-lhe alterar o número de nós que o GKE atualiza de uma só vez e a quantidade de interrupções que uma atualização provoca nas suas cargas de trabalho.

Os indicadores max-surge-upgrade e max-unavailable-upgrade estão definidos para cada conjunto de nós. Para mais informações sobre como escolher os parâmetros certos, aceda a Otimize a configuração da atualização por picos.

Pode alterar estas definições quando criar ou atualizar um cluster ou um conjunto de nós.

As seguintes variáveis são usadas nos comandos mencionados abaixo:

  • CLUSTER_NAME: o nome do cluster para o node pool.
  • COMPUTE_ZONE: a zona do cluster.
  • NODE_POOL_NAME: o nome do node pool.
  • NUMBER_NODES: o número de nós no node pool em cada uma das zonas do cluster.
  • SURGE_NODES: o número de nós adicionais (de pico) a criar em cada atualização do node pool.
  • UNAVAILABLE_NODES: o número de nós que podem estar indisponíveis em simultâneo em cada atualização do node pool.

Criar um cluster com parâmetros de pico específicos

Para criar um cluster com definições específicas para atualizações de picos, use as flags max-surge-upgrade e max-unavailable-upgrade.

gcloud container clusters create CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Criar um cluster com a atualização por picos desativada

Para criar um cluster sem atualizações rápidas, defina o valor da flag max-surge-upgrade como 0.

gcloud container clusters create CLUSTER_NAME \
    --max-surge-upgrade=0 --max-unavailable-upgrade=1

Criar um node pool com parâmetros de aumento específicos

Para criar um conjunto de nós num cluster existente com definições específicas para atualizações rápidas, use as flags max-surge-upgrade e max-unavailable-upgrade.

gcloud container node-pools create NODE_POOL_NAME \
    --num-nodes=NUMBER_NODES --cluster=CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Altere as definições de atualização por picos de uma pool de nós existente

Para atualizar as definições de atualização de um node pool existente, use os flags max-surge-upgrade e max-unavailable-upgrade. Se definir max-surge-upgrade como superior a 0, o GKE cria nós de pico. Se definir max-surge-upgrade como 0, o GKE não cria nós de pico.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Verificar se as atualizações por picos estão ativadas num conjunto de nós

Para ver se as atualizações rápidas estão ativadas num node pool, use gcloud para descrever os parâmetros do cluster:

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME

Se as atualizações de picos estiverem ativadas no conjunto de nós, a estratégia apresentada é SURGE.

Configure atualizações azul-verde

Com as atualizações do node pool azul-verde, pode controlar:

  • BATCH_NODE_COUNT ou BATCH_PERCENT: o tamanho dos lotes de nós que o GKE esgota de cada vez, o que significa que os pods são removidos dos nós. A predefinição é BATCH_NODE_COUNT=1. Se qualquer uma destas definições estiver definida como 0, o GKE ignora esta fase e avança para a fase Soak node pool.
  • BATCH_SOAK_DURATION: o tempo entre cada lote de nós a serem esgotados.
  • NODE_POOL_SOAK_DURATION: o tempo de teste de estabilidade para validar a sua carga de trabalho na nova configuração do nó.

Para saber mais sobre como funcionam as fases das atualizações azul-verde, consulte o artigo As fases das atualizações azul-verde.

As seguintes variáveis são usadas nos comandos indicados nas secções seguintes:

  • CLUSTER_NAME: o nome do cluster para o node pool.
  • NODE_POOL_NAME: o nome do node pool.
  • NUMBER_NODES: o número de nós no node pool em cada uma das zonas do cluster.
  • BATCH_NODE_COUNT: o número de nós azuis a esgotar num lote durante a fase de esgotamento do conjunto azul. A predefinição é 1. Se for definido como 0, a fase de esgotamento do conjunto azul é ignorada.
  • BATCH_PERCENT: a percentagem de nós azuis a esvaziar num lote durante a fase de esvaziamento do conjunto azul, expressa como um decimal entre 0 e 1, inclusive. O GKE arredonda para baixo para o nó mais próximo, até um valor mínimo de 1 nó, se a percentagem não for um número inteiro de nós. Se for definido como 0, a fase de esgotamento do conjunto azul é ignorada.
  • BATCH_SOAK_DURATION: a duração em segundos a aguardar após cada esgotamento do lote. A predefinição é 0.
  • NODE_POOL_SOAK_DURATION: a duração em segundos a aguardar após a conclusão da eliminação de todos os lotes. A predefinição é 3600 segundos.

Criar um node pool com a estratégia de atualização azul/verde

Crie um node pool com os parâmetros predefinidos de atualização azul-verde

Para criar um conjunto de nós num cluster existente com a estratégia de atualização azul/verde com os parâmetros predefinidos, use o seguinte comando:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade

Crie um node pool com uma atualização azul/verde usando tamanhos de lotes de contagem de nós absolutos

Para criar um conjunto de nós com definições de atualização azul/verde personalizadas, use as flags de parâmetros com o comando de criação do conjunto de nós.

Este comando cria um conjunto de nós com a seguinte configuração azul-verde personalizada, usando uma contagem de nós absoluta para as drenagens em lote:

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10s
  • NODE_POOL_SOAK_DURATION = 600s
gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
    --node-pool-soak-duration=600s

Crie um conjunto de nós com atualização azul/verde usando tamanhos de lotes baseados em percentagens

Este comando cria um conjunto de nós com a seguinte configuração azul-verde personalizada, usando uma percentagem para as drenagens em lote:

  • BATCH_PERCENTAGE = 25% (do tamanho do node pool)
  • BATCH_SOAK_DURATION = 10s
  • NODE_POOL_SOAK_DURATION = 1800s
gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
    --node-pool-soak-duration=1800s

Atualizar uma estratégia de atualização azul/verde de node pool existente

Atualize um node pool com os parâmetros predefinidos de atualização azul/verde

Para atualizar um node pool existente para a estratégia de atualização azul/verde, use o seguinte comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade

Atualize um node pool com uma atualização azul/verde usando tamanhos de lotes de contagem de nós absolutos

Para atualizar um conjunto de nós existente para a estratégia de atualização azul/verde com definições personalizadas, use as flags de parâmetros com o comando de criação do conjunto de nós.

Este comando atualiza um conjunto de nós para usar a seguinte configuração azul-verde personalizada, usando uma contagem de nós absoluta para as drenagens em lote:

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10s
  • NODE_POOL_SOAK_DURATION = 600s
gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
    --node-pool-soak-duration=600s

Atualize um node pool com uma atualização azul/verde usando tamanhos de lotes baseados em percentagens

Este comando cria um conjunto de nós com a seguinte configuração azul-verde personalizada, usando uma percentagem para as drenagens em lote:

  • BATCH_PERCENTAGE = 25% (do tamanho do node pool)
  • BATCH_SOAK_DURATION = 10s
  • NODE_POOL_SOAK_DURATION = 1800s
gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
    --node-pool-soak-duration=1800s

Voltar a usar atualizações por picos

Pode alterar o comportamento das atualizações azul-verde com definições e controlar o processo de atualização com comandos.

No entanto, se quiser usar atualizações de picos, execute o seguinte comando para voltar às atualizações de picos:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-surge-upgrade

Inspeccione as definições de atualização de um conjunto de nós

Para inspecionar as definições de atualização atuais de um node pool, pode usar o seguinte comando para descrever o node pool:

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME

O fragmento seguinte é um exemplo do resultado do comando. O campo strategy indica a estratégia de atualização em uso: SURGE indica que a estratégia de atualização de picos está ativada e BLUE_GREEN indica que a estratégia de atualização azul/verde está ativada.

upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: 1800s
    standardRolloutPolicy:
      batchNodeCount: 1
      batchSoakDuration: 10s
  strategy: BLUE_GREEN

Este comando também mostra a fase atual de uma atualização azul/verde em curso. Saiba mais sobre como verificar as definições de atualização de um conjunto de nós.

O que se segue?