Após criar um cluster, você pode modificar seus pools de nós. Apenas determinados parâmetros de um pool de nós podem ser atualizados, como tamanho, chave de criptografia e grupos de segurança. Este documento explica como realizar essas e outras atualizações comuns em um pool de nós.
No entanto, este documento não fornece uma lista completa de comandos de atualização. Se precisar atualizar um parâmetro não descrito neste documento, consulte a documentação gcloud container aws node-pools update
e projects.locations.awsNodePools.patch
.
Antes de começar
Para atualizar um pool de nós, você deve ter a seguinte permissão de Gerenciamento de Identidade e Acesso: gkemulticloud.googleapis.com/awsNodePools.update
.
Para obter instruções sobre como gerenciar permissões, consulte Conceder funções do IAM aos usuários .
Atualizar um pool de nós
As seções a seguir explicam como fazer várias atualizações em um pool de nós. Um pool de nós é um grupo de nós dentro de um cluster que possuem a mesma configuração. Todos os nós em um cluster devem pertencer a um pool de nós.
Você pode atualizar vários parâmetros de um pool de nós simultaneamente, especificando-os todos no mesmo comando. No entanto, para maior clareza, este documento mostra como atualizar um único parâmetro por vez.
Alterar versão do pool de nós
No GKE na AWS, alterar uma versão do pool de nós significa alterar a versão do GKE que está em execução nos nós desse pool de nós.
Para alterar a versão do pool de nós, especifique a nova versão usando o sinalizador node-version
no seguinte comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--node-version NODE_POOL_VERSION
Substitua o seguinte:
-
NODE_POOL_NAME
: o nome do pool de nós a ser atualizado. -
CLUSTER_NAME
: o nome do cluster ao qual o pool de nós será anexado. -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster. Por exemplo,us-west1
. -
NODE_POOL_VERSION
: a nova versão do pool de nós com suporte .
Atualizar tipo de instância do pool de nós
Um tipo de instância de pool de nós é o tipo de instância do AWS EC2 usada para criar os nós em um pool de nós. Por exemplo, o tipo de instância m5.xlarge
tem 4 vCPUs, 16 GB de memória e 32 GB de armazenamento SSD.
Para alterar o tipo de instância do seu pool de nós, especifique o novo tipo de instância usando o sinalizador instance-type
no seguinte comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--instance-type=INSTANCE_TYPE
Substitua o seguinte:
-
NODE_POOL_NAME
: o nome do seu pool de nós. -
CLUSTER_NAME
: o nome do seu cluster. -
GOOGLE_CLOUD_LOCATION
: o Google Cloud região que gerencia seu cluster. -
INSTANCE_TYPE
: o novo tipo de instância de máquina da AWS para este pool de nós. Por exemplo,m5.xlarge
.
Atualizações no tipo de instância do pool de nós não devem alterar a arquitetura de CPU subjacente da instância EC2. Por exemplo, se o seu pool de nós original usa instâncias com CPUs x86, o tipo de instância atualizado precisa continuar a usar CPUs x86, em vez de alguma outra arquitetura.
Para obter uma lista completa de instâncias suportadas e suas arquiteturas subjacentes, consulte Tipos de instâncias da AWS com suporte .
Gire a chave de criptografia de um pool de nós
Para obter informações sobre como atualizar as chaves de criptografia KMS do seu pool de nós, consulte Rotação de chaves .
Substituir grupos de segurança do pool de nós
Para atualizar os grupos de segurança anexados a um pool de nós, execute o seguinte comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--security-group-ids=SECURITY_GROUP_IDS
Substitua o seguinte:
-
NODE_POOL_NAME
: o nome do pool de nós a ser atualizado. -
CLUSTER_NAME
: o nome do seu cluster. -
GOOGLE_CLOUD_LOCATION
: o Google Cloud região que gerencia seu cluster. -
SECURITY_GROUP_IDS
: uma lista separada por vírgulas de grupos de segurança a serem anexados ao pool de nós.
Para clusters que executam o GKE versão 1.25 ou posterior, a atualização pode ser realizada dinamicamente sem reiniciar os nós. Essa é a abordagem recomendada para clusters que usam o GKE versão 1.25 ou posterior.
Para executar atualizações dinâmicas, sua função de agente de serviço de API deve ter as seguintes permissões do AWS IAM:
-
ec2:ModifyInstanceAttribute
-
ec2:DescribeInstances
Essas permissões serão atribuídas automaticamente à função de agente de serviço de API se você escolher a função de agente de serviço de API padrão ao criar seu cluster.
Para clusters que executam versões anteriores do GKE ou clusters que executam versões 1.25 ou posteriores, mas o agente de serviço da API não tem permissões para executar uma atualização dinâmica, a atualização é realizada usando uma atualização contínua. As atualizações contínuas são mais disruptivas do que as atualizações dinâmicas, pois reiniciam os nós, enquanto as atualizações dinâmicas não. Para obter mais informações sobre atualizações contínuas, consulte Atualizações de pico .
Remover grupos de segurança do pool de nós
Você pode remover todos os grupos de segurança não padrão anexados ao seu pool de nós executando o seguinte comando. Para obter mais informações sobre grupos de segurança padrão, consulte Grupos de segurança do pool de nós .
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--clear-security-group-ids
Substitua o seguinte:
-
NODE_POOL_NAME
: o nome do pool de nós a ser atualizado. -
CLUSTER_NAME
: o nome do seu cluster. -
GOOGLE_CLOUD_LOCATION
: o Google Cloud região que gerencia seu cluster.
Redimensionar um pool de nós
Para alterar o tamanho do seu pool de nós (ou seja, o número de nós no pool de nós), atribua novos valores aos sinalizadores min-nodes
e max-nodes
no seguinte comando:
gcloud container aws node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES
Substitua o seguinte:
-
NODE_POOL_NAME
: o nome do pool de nós a ser atualizado. -
CLUSTER_NAME
: o nome do cluster ao qual o pool de nós será anexado. -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster. Por exemplo,us-west1
. -
MIN_NODES
: o número mínimo de nós que o pool de nós pode conter. O valor pode ser0
ou maior. -
MAX_NODES
: o número máximo de nós que o pool de nós pode conter. O valor deve ser pelo menos1
e maior ou igual ao valor deMIN_NODES
.
Mais detalhes sobre o redimensionamento de pools de nós
Antes de redimensionar um pool de nós, é importante avaliar as possíveis repercussões em suas cargas de trabalho.
Ações de redimensionamento e suas consequências
Ao redimensionar pools de nós, diferentes ações são acionadas com base na nova configuração e no estado atual dos nós. É essencial entender essas ações e suas implicações:
- Sem alterações : se a contagem de nós atual já estiver alinhada com o novo intervalo especificado, o GKE na AWS não fará ajustes no número de nós.
- Aumentando o mínimo : se o novo número mínimo de nós for definido como maior que a contagem existente, o GKE na AWS adicionará nós incrementalmente até que o tamanho mínimo recém-definido seja atingido.
- Diminuindo o máximo : se você alterar a contagem máxima de nós para um valor menor que a contagem existente, o GKE na AWS executará as seguintes ações:
- Desabilita o dimensionador automático do cluster.
- Define o grupo de dimensionamento automático para o pool de nós para o tamanho mínimo especificado.
- Seleciona nós individuais para remoção. Cada nó é isolado, esvaziado de suas tarefas e, em seguida, encerrado. Este procedimento continua até que o tamanho máximo especificado seja atingido.
- Modifica o grupo de dimensionamento automático do pool de nós para alinhá-lo ao novo tamanho máximo.
- Reativa o dimensionador automático de cluster quando o tamanho máximo é atingido.
Para obter mais informações sobre o autoescalador de cluster, consulte Sobre o autoescalador de cluster .
Proteção da carga de trabalho durante o redimensionamento
Para garantir a disponibilidade contínua das cargas de trabalho durante o redimensionamento do pool de nós, o GKE na AWS fornece as seguintes proteções:
Durante uma drenagem de nós, o GKE na AWS respeita a configuração
PodDisruptionBudget
por até uma hora. Os pods restantes no nó após esse período são excluídos.Quando os nós estão configurados para serem reiniciados ou removidos, o GKE na AWS garante o desligamento normal e aguarda até duas horas. Se os pods permanecerem no nó após esse período, a instância da máquina virtual subjacente será excluída.
Verifique o status do seu pool de nós
Para verificar se sua atualização foi bem-sucedida, você pode verificar o status do pool de nós executando o seguinte comando:
gcloud container aws node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
Substitua o seguinte:
-
NODE_POOL_NAME
: o nome do seu pool de nós. -
CLUSTER_NAME
: o nome do seu cluster. -
GOOGLE_CLOUD_LOCATION
: o Google Cloud região que gerencia seu cluster.
O GKE na AWS tenta executar as atualizações solicitadas no pool de nós e, em seguida, realiza uma verificação de integridade. Se alguma das etapas de atualização falhar, o status do pool de nós será marcado como DEGRADED
.
Cancelar uma operação de atualização
Antes de cancelar uma atualização em andamento do pool de nós, você precisa determinar o nome da operação em andamento. Para listar as operações em andamento e seus respectivos nomes, execute o seguinte comando:
gcloud container aws operations list--filter="status=PENDING OR status=RUNNING"
--location GOOGLE_CLOUD_LOCATION
Substitua GOOGLE_CLOUD_LOCATION
pelo suportado Google Cloud região que gerencia seu cluster. Por exemplo, us-west1
.
Procure o OPERATION_NAME
da atualização que deseja cancelar na saída do comando. Para obter uma lista de operações, consulte gcloud container aws operations list .
Depois de identificar o OPERATION_NAME
, você pode cancelar a operação com o seguinte comando:
gcloud container aws operations cancel OPERATION_NAME
--location GOOGLE_CLOUD_LOCATION
Substitua o seguinte:
-
OPERATION_NAME
: o nome da operação de atualização. -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster. Por exemplo,us-west1
.
Observe que cancelar uma atualização em andamento do pool de nós não reverte as atualizações de nós já concluídas. Isso pode resultar em um pool de nós parcialmente atualizado.