Nesta página, mostramos como configurar upgrades automáticos de nós no Google Kubernetes Engine (GKE).
Visão geral
Com os upgrades automáticos de nós, os nós do cluster acompanham a
versão do plano de controle do cluster quando o plano de controle é
atualizado em nome do usuário.
Quando você cria um novo cluster ou pool de nós com o console Google Cloud ou
o comando gcloud, o upgrade automático de nós é ativado por padrão.
Saiba mais sobre upgrades de nós e clusters.
Os upgrades automáticos de nós oferecem vários benefícios:
- Menor sobrecarga no gerenciamento: não é preciso rastrear e atualizar manualmente os nós quando o plano de controle recebe um upgrade em seu nome.
- Mais segurança: às vezes, novos binários são lançados para corrigir um problema de segurança. Com upgrades automáticos, o GKE garante automaticamente que as atualizações de segurança sejam aplicadas e atualizadas.
- Facilidade de uso:oferece uma maneira automática de manter seus nós atualizados com os recursos mais recentes do Kubernetes.
Os pools de nós com upgrades automáticos ativados são programados para upgrades quando atendem aos critérios de seleção (anunciados nas notas da versão). Os lançamentos são divididos em várias semanas para garantir a estabilidade do cluster e da frota. Quando o upgrade é realizado, os nós são esvaziados e recriados para corresponder à versão atual do plano de controle. As modificações no disco de inicialização de uma VM de nó não são mantidas na recriação dos nós. Para manter as modificações durante a recriação dos nós, use um DaemonSet.
O upgrade automático de nós não está disponível para clusters Alfa. Se você estiver usando um cluster com pools de nós do Windows Server, consulte Como fazer upgrade dos pools de nós do Windows Server antes de ativar o upgrade automático de nós.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative 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 o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
- Verifique se você tem um cluster padrão. Quando você cria um novo cluster com o console Google Cloud ou o comando da Google Cloud CLI, o upgrade automático de nós é ativado por padrão. Para criar um cluster Standard, consulte Criar um cluster regional.
Verificar o estado do upgrade automático de um pool de nós
Os upgrades automáticos de nós são ativados por padrão para pools de nós.
Conforme definido pelas exclusões de manutenção
É possível desativar os upgrades automáticos de nós para todos os pools de nós em um cluster usando uma exclusão de manutenção do cluster com o escopo "Sem upgrades de nós ou secundários". Ou, se você tiver um cluster em que quer desativar os upgrades automáticos para alguns, mas não todos, os pools de nós, use uma exclusão de manutenção do pool de nós. É possível usar qualquer um desses tipos de exclusões se o cluster estiver inscrito em um canal de lançamento. Para saber se você já configurou essas exclusões, consulte a política de manutenção de um cluster.
Conforme definido pelo campo de upgrades automáticos de nós
Embora seja uma configuração legada e não recomendada, também é possível desativar
os upgrades automáticos de nós configurando o campo autoUpgrade para pools de nós
individuais. É possível verificar se o upgrade automático está ativado ou desativado para um pool de nós
com esse campo usando o console do Google Cloud ou o comando gcloud.
gcloud
Para verificar o estado do upgrade automático de um pool de nós, execute o comando a seguir:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION
Substitua:
NODE_POOL_NAME: o nome do pool de nós.CLUSTER_NAME: o nome do cluster que contém o pool de nós.CONTROL_PLANE_LOCATION: o local do Compute Engine do plano de controle do cluster. Forneça uma região para clusters regionais ou uma zona para clusters zonais.
Procure o campo autoUpgrade na saída para saber se os upgrades automáticos
estão ativados ou desativados para o pool de nós.
management:
autoUpgrade: true
Console
Para verificar o estado do upgrade automático de um pool de nós, faça o seguinte:
Acesse a página do Google Kubernetes Engine no console do Google Cloud .
Na lista de clusters, clique no nome do cluster que você quer ver.
Clique na guia Nós.
Em Pools de nós, clique no nome do pool que você quer visualizar.
Na página Detalhes do pool de nós, em Gerenciamento, veja o valor do campo Upgrade automático.
Ativar upgrades automáticos de nós para um pool de nós
Quando você cria um novo cluster com o console Google Cloud ou o comando gcloud,
o upgrade automático de nós é ativado por padrão.
É possível ativar o upgrade automático de nós se ele estiver desativado. Isso não afeta a configuração das exclusões de manutenção, que são a maneira recomendada de impedir que o GKE faça upgrade automático dos nós. Para ter mais controle sobre quando os nós podem ser atualizados automaticamente, considere configurar janelas de manutenção e exclusões.
Use as instruções a seguir para ativar os upgrades automáticos de nós:
gcloud
Para ativar os upgrades automáticos para um pool de nós atual, execute o comando abaixo:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--enable-autoupgrade
Substitua:
NODE_POOL_NAME: o nome do pool de nós.CLUSTER_NAME: o nome do cluster que contém o pool de nós.CONTROL_PLANE_LOCATION: o local do Compute Engine do plano de controle do cluster. Forneça uma região para clusters regionais ou uma zona para clusters zonais.
Console
Para ativar upgrades automáticos para um pool de nós atual, execute as etapas abaixo:
Acesse a página do Google Kubernetes Engine no console do Google Cloud .
Na lista de clusters, clique no nome do cluster que você quer modificar.
Clique na guia Nós.
Em Pools de nós, clique no nome do pool que você quer modificar.
Na página Detalhes do pool de nós, clique em edit Editar.
Em Gerenciamento, marque a caixa de seleção Ativar upgrade automático.
Clique em Salvar.
Verificar o status dos upgrades de nó
É possível verificar o status de um upgrade usando gcloud container operations.
Confira uma lista de todas as operações em execução e concluídas no cluster dos últimos 12 dias, se houver menos de 5.000 operações, ou as últimas 5.000 operações:
gcloud container operations list \
--location=CONTROL_PLANE_LOCATION
Cada operação recebe um código e um tipo, além de horários de início e término, cluster de destino e status. A lista é semelhante ao exemplo a seguir:
NAME TYPE ZONE TARGET STATUS_MESSAGE STATUS START_TIME END_TIME
operation-1505407677851-8039e369 CREATE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT16:47:57.851933021Z 20xx-xx-xxT16:50:52.898305883Z
operation-1505500805136-e7c64af4 UPGRADE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT18:40:05.136739989Z 20xx-xx-xxT18:41:09.321483832Z
operation-1505500913918-5802c989 DELETE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT18:41:53.918825764Z 20xx-xx-xxT18:43:48.639506814Z
Para ver mais informações sobre uma operação específica, informe o ID da operação, conforme mostrado no comando a seguir:
gcloud container operations describe OPERATION_ID \
--location=CONTROL_PLANE_LOCATION
Exemplo:
gcloud container operations describe operation-1507325726639-981f0ed6
endTime: '20xx-xx-xxT21:40:05.324124385Z'
name: operation-1507325726639-981f0ed6
operationType: UPGRADE_CLUSTER
selfLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/operations/operation-1507325726639-981f0ed6
startTime: '20xx-xx-xxT21:35:26.639453776Z'
status: DONE
targetLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/clusters/...
zone: us-central1-a
Se o upgrade foi cancelado ou falhou e está parcialmente concluído, é possível retomar ou reverter o upgrade.
Verificar as configurações de upgrade do pool de nós
É possível ver detalhes sobre a estratégia de upgrade de nós que está sendo usada para os pools de nós usando o comando gcloud container node-pools
describe. Para upgrades em azul-verde, o comando também retorna a fase atual do upgrade.
Execute este comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Substitua:
NODE_POOL_NAME: o nome do pool de nós a ser descrito.CLUSTER_NAME: o nome do cluster do pool de nós a ser descrito.CONTROL_PLANE_LOCATION: o local (região ou zona) do plano de controle, comous-central1ouus-central1-a.
Este comando exibirá as configurações de upgrade atuais. No exemplo a seguir, a saída será exibida se você estiver usando a estratégia de upgrade azul-verde.
upgradeSettings:
blueGreenSettings:
nodePoolSoakDuration: 1800s
standardRolloutPolicy:
batchNodeCount: 1
batchSoakDuration: 10s
strategy: BLUE_GREEN
Se você estiver usando a estratégia de upgrade azul-verde, a saída também incluirá detalhes sobre as configurações de upgrade azul-verde e a fase intermediária atual. O exemplo a seguir mostra como isso pode ser feito:
updateInfo:
blueGreenInfo:
blueInstanceGroupUrls:
- https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{BLUE_INSTANCE_GROUP_NAME}
bluePoolDeletionStartTime: {BLUE_POOL_DELETION_TIME}
greenInstanceGroupUrls:
- https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{GREEN_INSTANCE_GROUP_NAME}
greenPoolVersion: {GREEN_POOL_VERSION}
phase: DRAINING_BLUE_POOL
Desativar upgrades automáticos do nó
É possível desativar o upgrade automático de nós para um pool de nós atual, se precisar gerenciar manualmente os upgrades de nós para esse pool. Se você quiser desativar os upgrades automáticos de nós para todos os pools de nós em um cluster, recomendamos usar uma exclusão de manutenção do cluster com o escopo "Nenhum upgrade de nó ou secundário". Se você tiver um cluster em que quer desativar os upgrades automáticos para alguns, mas não todos, os pools de nós, use uma exclusão de manutenção do pool de nós. É possível usar qualquer um desses tipos de exclusões se o cluster estiver inscrito em um canal de lançamento.
Embora não seja recomendado, você pode seguir as instruções desta seção para desativar os upgrades automáticos de um pool de nós específico.
Entenda as seguintes considerações antes de desativar os upgrades automáticos de nós.
Considerações antes de desativar os upgrades automáticos de nós
Se você desativar os upgrades automáticos de nós para um pool de nós usando qualquer um dos métodos disponíveis, o GKE não vai atualizar a versão dos nós, exceto para atualizar para a próxima versão secundária no fim do suporte. A desativação dos upgrades automáticos de nós também não impede que o GKE faça upgrade do plano de controle do cluster.
A desativação impede atualizações de versão, mas não todas as tarefas de manutenção
Desativar os upgrades automáticos de nós impede apenas que o GKE atualize a versão dos nós, mas não impede que o GKE inicie outras tarefas de manutenção. Por exemplo, mesmo com os upgrades automáticos de nós desativados, acionar a rotação de endereços IP, o Cloud DNS, a ativação da política de rede ou a migração de PSC em um cluster recria todos os nós na mesma versão que o plano de controle, seja qual for a versão escolhida para o pool de nós. Para controlar o tempo da manutenção, use Janelas e exclusões de manutenção.
Desativar significa a responsabilidade pela compatibilidade dos nós do plano de controle
Se você desativar o upgrade automático de nós para um pool de nós, será sua responsabilidade garantir que os nós do cluster executem uma versão compatível com a versão do plano de controle, obedecendo à política de desvio de versão do GKE. Desativar os upgrades automáticos de nós apenas impede que os pools de nós sejam atualizados até o fim do suporte padrão. O GKE faz upgrade dos nós que estão executando uma versão sem suporte depois que a versão atinge o fim do suporte para garantir a integridade do cluster.
Para mais detalhes sobre o prazo do fim do suporte, consulte a Programação estimada para canais de lançamento. Os nós que executam versões sem suporte não podem ser atualizados imediatamente após o fim do suporte da versão, e o tempo real pode variar a critério do Google.
A desativação não interrompe as operações em andamento
Desativar os upgrades automáticos de nós não interrompe nem cancela upgrades em andamento para nós em pools de nós. Para cancelar ou interromper upgrades em andamento, consulte Como cancelar um upgrade de nós. Cancelar um upgrade de nó pode ser útil em situações em que você encontra falhas nas cargas de trabalho em nós atualizados e quer evitar mais interrupções.
Se o upgrade estiver totalmente concluído para todo o pool de nós, ele não poderá ser revertido nem cancelado. Para fazer downgrade do pool de nós, consulte Como fazer downgrade de pools de nós.
Ativar upgrades automáticos de nós para um pool de nós
Se você precisar desativar os upgrades automáticos de nós para um pool de nós atual, recomendamos usar uma exclusão de manutenção do pool de nós. Para instruções, consulte Adicionar uma exclusão de manutenção de pool de nós a um pool de nós atual. Se você precisar desativar os upgrades automáticos de nós para todos os pools de nós em um cluster, use uma exclusão de manutenção do cluster com o escopo "Nenhum upgrade de nó ou secundário".
Também é possível usar as instruções a seguir, embora não seja recomendado, para desativar os upgrades automáticos de nós em um pool de nós atual.
gcloud
Para desativar upgrades automáticos para um pool de nós existente, execute o comando abaixo:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--no-enable-autoupgrade
Console
Para desativar upgrades automáticos para um pool de nós atual, execute as etapas abaixo:
Acesse a página do Google Kubernetes Engine no console do Google Cloud .
Na lista de clusters, clique no nome do cluster que você quer modificar.
Clique na guia Nós.
Em Pools de nós, clique no nome do pool que você quer modificar.
Na página Detalhes do pool de nós, clique em edit Editar.
Em Gerenciamento, desmarque a caixa de seleção Ativar upgrade automático.
Clique em Salvar para modificar o cluster.
Criar um pool de nós com upgrades automáticos de nós ativados
Os pools de nós do GKE têm upgrades automáticos ativados por padrão. No entanto, se você quiser especificar explicitamente essa configuração padrão, use as instruções a seguir:
gcloud
Para criar um pool de nós com o upgrade automático ativado, especifique a
sinalização --enable-autoupgrade no comando gcloud container node-pools create:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--enable-autoupgrade
Console
Acesse Como criar um cluster ou Como adicionar e gerenciar pools de nós para ver instruções sobre como criar clusters e pools de nós.
Receber notificações de upgrade
O GKE publica notificações de upgrade no Pub/Sub, fornecendo um canal para receber informações do GKE sobre seus clusters.
Para mais informações, consulte Como receber notificações de upgrade de cluster.
Mudar os parâmetros de upgrade súbito
Para saber mais sobre como alterar os parâmetros de upgrade de sobretensão, consulte Configurar upgrades de sobrecarga.
Controle de exercícios durante um upgrade do pool de nós
Durante os upgrades automáticos e de pool de nós iniciados manualmente, as seguintes ações podem ser realizadas.
Configurar upgrades simultâneos de pool de nós
Por padrão, o GKE faz upgrade automático de um pool de nós por vez. Para clusters com muitos pools de nós, é possível configurar upgrades simultâneos de pool de nós para diminuir o tempo total necessário para fazer upgrade do cluster. Para isso, defina o número máximo de pools de nós que o GKE pode atualizar automaticamente ao mesmo tempo. Em clusters Standard, essa configuração determina a simultaneidade dos upgrades de nós para pools de nós Standard e pools de nós gerenciados pelo Autopilot. Em clusters do Autopilot, essa configuração determina a simultaneidade dos upgrades de nós para grupos de nós.
É possível configurar o limite de simultaneidade ao criar ou atualizar um cluster usando a CLI gcloud. Verifique se os pools de nós que você quer fazer upgrade automático simultaneamente têm os upgrades automáticos ativados.
Não é possível ativar esse recurso para um cluster inscrito em uma sequência de lançamento com etapas personalizadas (prévia).
Para configurar upgrades simultâneos do pool de nós, execute um dos seguintes comandos:
Crie um cluster com upgrades simultâneos de pool de nós configurados:
gcloud beta container clusters create CLUSTER_NAME \ --project=PROJECT_NAME --location CONTROL_PLANE_LOCATION \ --node-pool-upgrade-concurrency-config=max-count=MAX_COUNTAtualize um cluster para fazer upgrade simultâneo dos pools de nós:
gcloud beta container clusters update CLUSTER_NAME \ --project=PROJECT_NAME \ --location=CONTROL_PLANE_LOCATION \ --node-pool-upgrade-concurrency-config=max-count=MAX_COUNT
Substitua:
CLUSTER_NAME: o nome do cluster.PROJECT_NAME: o nome do projeto.LOCATION: o local de computação do cluster.MAX_COUNT: o número máximo de pools de nós a serem atualizados simultaneamente. O valor precisa ser um número inteiro entre1e100. Para reverter ao comportamento sequencial padrão, defina esse valor como1.
Cancelar um upgrade do pool de nós
Você pode cancelar um upgrade a qualquer momento. Para saber mais sobre o que acontece quando você cancela um upgrade súbito, consulte Cancelar um upgrade súbito. Para saber mais sobre o que acontece quando você cancela um upgrade azul-verde, consulte Cancelar um upgrade azul-verde.
Consiga o ID da operação de upgrade:
gcloud container operations list \ --location=CONTROL_PLANE_LOCATIONCancelar o upgrade:
gcloud container operations cancel OPERATION_ID \ --location=CONTROL_PLANE_LOCATION
Consulte a
documentação
gcloud container operations cancel.
Retomar um upgrade do pool de nós
É possível retomar um upgrade iniciando-o manualmente novamente, especificando a versão de destino do upgrade original.
Por exemplo, se um upgrade falhar ou se você pausar um upgrade em andamento, será possível retomar o upgrade cancelado iniciando o mesmo upgrade novamente no pool de nós, especificando a versão de destino da operação inicial de upgrade.
Para saber mais sobre o que acontece quando você retoma um upgrade, consulte Retomar um upgrade súbito e Upgrade azul-verde.
Para retomar um upgrade, use o seguinte comando:
gcloud container clusters upgrade CLUSTER_NAME \
--node-pool=NODE_POOL_NAME \
--location=CONTROL_PLANE_LOCATION \
--cluster-version VERSION
Substitua:
NODE_POOL_NAME: o nome do pool de nós em que você quer retomar o upgrade dele.CLUSTER_NAME: o nome do cluster do pool de nós em que você quer retomar o upgrade.CONTROL_PLANE_LOCATION: o local (região ou zona) do plano de controle, comous-central1ouus-central1-a.VERSION: a versão de destino do upgrade do pool de nós cancelado.
Para mais informações, consulte a
documentação gcloud container clusters upgrade.
Reverter um upgrade do pool de nós
É possível reverter um pool de nós para fazer downgrade dos nós atualizados para o estado original antes do início do upgrade.
Use o comando rollback se um upgrade em andamento tiver sido cancelado, tiver ocorrido falha no upgrade ou ele estiver incompleto devido a uma janela de manutenção
tempo limite. Como alternativa, se você quiser especificar a versão, siga as
instruções para fazer downgrade
do pool de nós.
Para saber mais sobre o que acontece quando você reverte um upgrade de pool de nós, consulte Reverter um upgrade súbito ou Reverter um upgrade azul-verde.
Para reverter um upgrade, execute o seguinte comando:
gcloud container node-pools rollback NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Substitua:
NODE_POOL_NAME: o nome do pool de nós para reverter o upgrade do pool de nós.CLUSTER_NAME: o nome do cluster do pool de nós para onde reverter o upgrade.CONTROL_PLANE_LOCATION: o local (região ou zona) do plano de controle, comous-central1ouus-central1-a.
Consulte a documentação
gcloud container node-pools rollback.
Concluir um upgrade do pool de nós
Se você estiver usando a estratégia de upgrade azul-verde, poderá concluir um upgrade do pool de nós durante a fase de imersão, pulando o restante do tempo de imersão.
Para saber como fazer um upgrade do pool de nós, consulte Concluir um upgrade do pool de nós.
Para concluir um upgrade usando a estratégia azul-verde, execute o seguinte comando:
gcloud container node-pools complete-upgrade NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Substitua:
NODE_POOL_NAME: o nome do pool de nós em que você quer concluir o upgrade.CLUSTER_NAME: o nome do cluster do pool de nós para o qual você quer concluir o upgrade.CONTROL_PLANE_LOCATION: o local (região ou zona) do plano de controle, comous-central1ouus-central1-a.
Consulte a documentação
gcloud container node-pools complete-upgrade.
A seguir
- Saiba mais sobre pools de nós.
- Saiba mais sobre os upgrades de cluster e de nó.
- Saiba como fazer o upgrade manual de um cluster ou pool de nós.
- Saiba mais sobre os canais de lançamento.
- Resolver problemas de upgrades de cluster.