Como administrador da plataforma, pode configurar uma estratégia de atualização de nós para ajustar a forma como o Google Kubernetes Engine (GKE) atualiza os nós nos seus clusters do GKE. Para mais informações sobre as 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
CLI gcloud. Se instalou anteriormente a CLI gcloud, execute o comando
gcloud components updatepara obter a versão mais recente. As versões anteriores da CLI gcloud podem não suportar a execução dos comandos neste documento.
Requisitos
- Para usar atualizações azul-verde com dimensionamento automático, o plano de controlo de um cluster tem de estar a executar a versão 1.34.0-gke.2201000 ou posterior e ter o dimensionamento automático de clusters ativado.
Configure uma estratégia de atualização de nós
Quando configurar os conjuntos de nós padrão do cluster, pode selecionar e configurar uma das seguintes estratégias de atualização de nós suportadas:
- Atualizações de picos
- Atualizações azul-verde
- Atualizações azul/verde com dimensionamento automático
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. Os pools de nós geridos pelo Autopilot nos clusters Standard usam atualizações rápidas e não pode selecionar uma estratégia diferente nem alterar a configuração.
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 de atividade.
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 de procura, 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_NODESCriar 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=1Criar 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_NODESAltere 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 picos.
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODESVerificar 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_NAMESe 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_COUNTouBATCH_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 resistência para validar a sua carga de trabalho na nova configuração do nó.
Para mais informações sobre como funcionam as fases das atualizações azul-verde, consulte o artigo 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 esvaziar num lote durante a fase de esvaziamento do conjunto azul. A predefinição é 1. Se for definido como 0, a fase de drenagem do conjunto azul é ignorada.BATCH_PERCENT: a percentagem de nós azuis a drenar num lote durante a fase de drenagem 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 que use a estratégia de atualização azul/verde
Crie um node pool que use os parâmetros predefinidos de atualização azul/verde
Para criar um conjunto de nós num cluster existente que use 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 que use atualizações azul-verde com tamanhos de lotes de contagem de nós absolutos
Para criar um conjunto de nós que use 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 node pool que use a atualização azul/verde com 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 um node pool existente para usar a estratégia de atualização azul/verde
Atualize um node pool para usar atualizações azul-verde com os parâmetros predefinidos
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 para usar atualizações azul-verde com 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 para usar atualizações azul-verde com 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
Configure atualizações azul-verde com escalamento automático
Para usar atualizações azul-verde com dimensionamento automático para um conjunto de nós, não tem de configurar nenhum dos parâmetros adicionais para o tamanho do lote ou a preparação. No entanto, pode configurar o período entre a colocação em quarentena e a drenagem dos nós. Antes de ativar esta estratégia de atualização, reveja as práticas recomendadas e as limitações.
Crie um node pool que use atualizações azul-verde com dimensionamento automático
Crie um node pool com atualizações azul-verde com dimensionamento automático ativado:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--enable-autoscaling \
--max-nodes=MAX_NODES \
--enable-blue-green-upgrade \
--autoscaled-rollout-policy=[wait-for-drain-duration=WAIT_FOR_DRAIN_DURATIONs]
Para definir os parâmetros MIN_NODE e MAX_NODE, consulte as recomendações sobre como configurar o cluster e os conjuntos de nós.
Substitua o parâmetro WAIT_FOR_DRAIN_DURATION opcional
pelo tempo, em segundos, a aguardar após isolar o conjunto azul e antes de
esvaziar os nós. Pode configurar este tempo entre zero e sete dias, sendo a predefinição de três dias (259200 segundos).
Atualize um node pool para usar atualizações azul-verde com dimensionamento automático
Atualize um node pool existente para usar atualizações azul-verde com dimensionamento automático:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--enable-blue-green-upgrade \
--autoscaled-rollout-policy=[wait-for-drain-duration=WAIT_FOR_DRAIN_DURATIONs]
Substitua o parâmetro WAIT_FOR_DRAIN_DURATION opcional
pelo tempo, em segundos, a aguardar após isolar o conjunto azul e antes
de esvaziar os nós. Pode configurar este tempo entre zero e sete dias, sendo a predefinição de três dias (259200 segundos).
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 utilização:
- SURGE indica que a estratégia de atualização de picos está ativada.
BLUE_GREEN indica que a estratégia de atualização azul-verde está ativada:
- As atualizações azul-verde padrão são ativadas se o resultado incluir valores para
standardRolloutPolicyemblueGreenSettings. - As atualizações azul-verde com ajuste de escala automático estão ativadas se
autoscaledRolloutPolicyfor mencionado.
- As atualizações azul-verde padrão são ativadas se o resultado incluir valores para
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.