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
ouBATCH_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
= 2BATCH_SOAK_DURATION
= 10sNODE_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
= 10sNODE_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
= 2BATCH_SOAK_DURATION
= 10sNODE_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
= 10sNODE_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?
- Saiba mais acerca das estratégias de atualização de nós.
- Saiba como atualizar manualmente os seus conjuntos de nós.