Configurar estratégias de upgrade de nós


Como administrador da plataforma, configure uma estratégia de upgrade de nós para ajustar como o GKE faz upgrade dos nós nos clusters do Google Kubernetes Engine (GKE). Para saber mais sobre as estratégias de upgrade de nós, consulte Estratégias de upgrade de nós.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.

Configurar uma estratégia de upgrade de nó

Ao configurar os pools de nós do cluster, é possível selecionar e configurar uma das estratégias de upgrade de nós compatíveis, súbitos ou blue-green. Essas estratégias de upgrade permitem otimizar o processo de upgrade do pool de nós com base nas necessidades do ambiente do cluster.

Configurar upgrades súbitos

Upgrades súbitos permitem alterar o número de upgrades de nós do GKE de uma só vez e a quantidade de interrupções que um upgrade faz nas suas cargas de trabalho.

As sinalizações max-surge-upgrade e max-unavailable-upgrade são definidas para cada pool de nós. Para mais informações sobre como escolher os parâmetros certos, acesse Otimizar a configuração do upgrade súbito.

É possível alterar essas configurações ao criar ou atualizar um cluster ou pool de nós.

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

  • CLUSTER_NAME: o nome do cluster do pool de nós.
  • COMPUTE_ZONE: a zona do cluster.
  • NODE_POOL_NAME: o nome do pool de nós.
  • NUMBER_NODES: o número de nós no pool em cada uma das zonas do cluster.
  • SURGE_NODES: o número de nós extras (de sobrecarga) a serem criados em cada upgrade do pool de nós.
  • UNAVAILABLE_NODES: o número de nós que podem estar indisponíveis ao mesmo tempo, em cada upgrade do pool de nós.

Como criar um cluster com parâmetros súbitos específicos

Para criar um cluster com configurações específicas para upgrades súbitos, use as sinalizações max-surge-upgrade e max-unavailable-upgrade.

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

Como criar um cluster com upgrade súbito desativado

Para criar um cluster sem upgrades súbitos, defina o valor da sinalização max-surge-upgrade como 0.

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

Como criar um pool de nós com parâmetros súbitos específicos

Para criar um pool de nós em um cluster atual com configurações específicas para upgrades súbitos, use as sinalizações 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

Alterar as configurações de upgrade súbito de um pool de nós atual

Para atualizar as configurações de upgrade de um pool de nós atual, use as sinalizações max-surge-upgrade e max-unavailable-upgrade. Se você definir max-surge-upgrade como maior que 0, o GKE criará nós de sobretensão. Se você definir max-surge-upgrade como 0, o GKE não criará nós de sobretensão.

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

Como verificar se os upgrades súbitos são ativados em um pool de nós

Para ver se os upgrades súbitos estão ativados em um pool de nós, use o gcloud para descrever os parâmetros do cluster:

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

Se os upgrades de sobretensão estiverem ativados no pool de nós, a estratégia listada será SURGE.

Configurar upgrades azul-verde

Com upgrades de pool de nós azul-verde, você pode controlar:

  • BATCH_NODE_COUNT ou BATCH_PERCENT: o tamanho dos lotes de nós que o GKE descarrega por vez. Isso significa que os pods são removidos dos nós. O padrão é BATCH_NODE_COUNT=1. Se uma dessas configurações for definida como 0, o GKE pulará essa fase e passará para a fase do pool de nós de Soak.
  • BATCH_SOAK_DURATION: o tempo entre cada lote de nós sendo drenado.
  • NODE_POOL_SOAK_DURATION: a quantidade de tempo de imersão para validar sua carga de trabalho na nova configuração de nó.

Para saber mais sobre como funcionam as fases de upgrades azul-verde, consulte Fases de upgrades azul-verde.

As variáveis abaixo são usadas nos comandos listados nas próximas seções:

  • CLUSTER_NAME: o nome do cluster do pool de nós.
  • NODE_POOL_NAME: o nome do pool de nós.
  • NUMBER_NODES: o número de nós no pool em cada uma das zonas do cluster.
  • BATCH_NODE_COUNT: o número de nós azuis a serem drenados em um lote durante a fase de drenagem do pool azul. O padrão é 1. Se for definido como zero, a fase de drenagem do pool azul será ignorada.
  • BATCH_PERCENT: a porcentagem de nós azuis a serem drenados em um lote durante a fase de drenagem do pool azul, expressa como um número decimal entre 0 e 1, inclusive. O GKE arredondará para baixo para o nó mais próximo, para um valor mínimo de um nó, se a porcentagem não for um número inteiro de nós. Se for definido como zero, a fase de drenagem do pool azul será ignorada.
  • BATCH_SOAK_DURATION: a duração, em segundos, de espera após cada drenagem em lote. O padrão é 0.
  • NODE_POOL_SOAK_DURATION: a duração em segundos a ser esperada após a conclusão da drenagem de todos os lotes. O padrão é 3600 segundos.

Como criar um pool de nós com a estratégia de upgrade azul-verde

Criar um pool de nós com os parâmetros padrão de upgrade azul-verde

Para criar um pool de nós em um cluster atual com a estratégia de upgrade azul-verde com os parâmetros padrão, use o seguinte comando:

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

Criar um pool de nós com upgrade azul-verde usando tamanhos de lote de contagem de nós absolutos

Para criar um pool de nós com configurações personalizadas de upgrade azul-verde, use as sinalizações de parâmetro com o comando de criação do pool de nós.

Esse comando cria um pool de nós com a seguinte configuração personalizada azul-verde, usando uma contagem absoluta de nós 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

Criar um pool de nós com upgrade azul-verde usando tamanhos de lote baseados em porcentagem

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

  • BATCH_PERCENTAGE = 25% (do tamanho do pool de nós)
  • 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

Atualizando uma estratégia de upgrade azul-verde do pool de nós atual

Atualizar um pool de nós com os parâmetros padrão de upgrade azul-verde

Para atualizar um pool de nós atual para a estratégia de upgrade azul-verde, use o seguinte comando:

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

Atualizar um pool de nós com upgrade azul-verde usando tamanhos de lote de contagem de nós absolutos

Para atualizar um pool de nós atual para a estratégia de upgrade azul-verde com configurações personalizadas, use as sinalizações de parâmetro com o comando de criação do pool de nós.

Esse comando atualiza um pool de nós para usar a seguinte configuração azul-verde personalizada, usando uma contagem absoluta de nós 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

Atualizar um pool de nós com upgrade azul-verde usando tamanhos de lote baseados em porcentagem

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

  • BATCH_PERCENTAGE = 25% (do tamanho do pool de nós)
  • 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

Como voltar a usar os upgrades súbitos

É possível alterar o comportamento dos upgrades azul-verde com as configurações, e controlar o processo de upgrade com comandos.

No entanto, se você quiser usar upgrades de sobretensão, execute o seguinte comando para voltar a eles:

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

Inspecionar as configurações de upgrade de um pool de nós

Para inspecionar as configurações de upgrade atuais de um pool de nós, use o seguinte comando para descrever esse pool:

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

O snippet a seguir é um exemplo de saída do comando. O campo strategy indica a estratégia de upgrade em uso: SURGE indica que a estratégia de upgrade de sobretensão está ativada, e BLUE_GREEN indica que o a estratégia de upgrade verde esteja ativada.

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

Esse comando também mostra a fase atual de um upgrade azul-verde em andamento. Saiba mais sobre como verificar as configurações de upgrade de um pool de nós.

A seguir