Como administrador da plataforma, configure uma estratégia de upgrade de nós para ajustar como o Google Kubernetes Engine (GKE) faz upgrade dos nós nos clusters do GKE. Para mais informações sobre 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 CLI do Google Cloud para essa tarefa,
instale e inicialize a
gcloud CLI. Se você instalou a gcloud CLI anteriormente, instale a versão
mais recente executando o comando
gcloud components update. Talvez as versões anteriores da gcloud CLI não sejam compatíveis com a execução dos comandos neste documento.
Requisitos
- Para usar upgrades azul-verde com escalonamento automático, o plano de controle de um cluster precisa estar executando a versão 1.34.0-gke.2201000 ou posterior e ter o escalonador automático de cluster ativado.
Configurar uma estratégia de upgrade de nó
Ao configurar os pools de nós Standard do cluster, é possível selecionar e configurar uma das seguintes estratégias de upgrade de nós compatíveis:
Essas estratégias de upgrade permitem otimizar o processo de upgrade do pool de nós com base nas necessidades do ambiente do cluster. Os pools de nós gerenciados pelo Autopilot em clusters padrão usam upgrades súbitos, e não é possível selecionar uma estratégia diferente nem mudar a configuração.
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_NODESComo 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=1Como 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_NODESAlterar 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_NODESComo 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_NAMESe 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_COUNTouBATCH_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 mais informações 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 que usa a estratégia de upgrade azul-verde
Criar um pool de nós que usa os parâmetros padrão de upgrade azul-verde
Para criar um pool de nós em um cluster atual que usa a estratégia de upgrade azul-verde com os parâmetros padrão, use o comando a seguir:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade
Criar um pool de nós que use upgrades azul-verde com tamanhos de lote de contagem de nós absolutos
Para criar um pool de nós que use configurações personalizadas de upgrade azul-verde, use as flags 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= 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
Criar um pool de nós que use upgrade azul-verde com 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= 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 pool de nós atual para usar a estratégia de upgrade azul-verde
Atualizar um pool de nós para usar upgrades azul-verde com os parâmetros padrão
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 para usar upgrades azul-verde com 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= 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
Atualizar um pool de nós para usar upgrades azul-verde com 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= 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
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
Configurar upgrades azul-verde com escalonamento automático
Para usar upgrades azul-verde com escalonamento automático em um pool de nós, não é necessário configurar nenhum dos parâmetros adicionais para tamanho ou imersão do lote. No entanto, é possível configurar o período entre o isolamento e o esgotamento dos nós. Antes de ativar essa estratégia de upgrade, consulte as práticas recomendadas e limitações.
Criar um pool de nós que use upgrades azul-verde com escalonamento automático
Crie um pool de nós com upgrades azul-verde escalonados automaticamente ativados:
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 pools de nós.
Substitua o parâmetro opcional WAIT_FOR_DRAIN_DURATION pelo tempo, em segundos, de espera após o isolamento do pool azul e antes da drenagem dos nós. É possível configurar esse tempo entre zero e sete dias, sendo o padrão três dias (259200 segundos).
Atualizar um pool de nós para usar upgrades azul-verde com escalonamento automático
Atualize um pool de nós existente para usar upgrades azul-verde escalonados automaticamente:
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 opcional WAIT_FOR_DRAIN_DURATION pelo tempo, em segundos, de espera após o isolamento do pool azul e antes da drenagem dos nós. É possível configurar esse tempo entre zero e sete dias, sendo o padrão três dias (259200 segundos).
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.
BLUE_GREEN indica que a estratégia de upgrade azul-verde está ativada:
- Os upgrades azul-verde padrão são ativados se a saída incluir valores para
standardRolloutPolicyemblueGreenSettings. - Os upgrades azul-verde escalonados automaticamente são ativados se
autoscaledRolloutPolicyfor mencionado.
- Os upgrades azul-verde padrão são ativados se a saída incluir valores para
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
- Saiba mais sobre as estratégias de upgrade de nós.
- Saiba como fazer upgrade manual dos seus pools de nós.