Depois de criar um cluster, pode modificar os respetivos conjuntos de nós. Só é possível atualizar determinados parâmetros de um conjunto de nós, como o respetivo tamanho, chave de encriptação e grupos de segurança. Este documento explica como fazer estas e outras atualizações comuns a um conjunto de nós.
No entanto, este documento não fornece uma lista exaustiva de comandos de atualização.
Se precisar de atualizar um parâmetro que não esteja descrito neste documento,
consulte gcloud container aws node-pools
update
e
a documentação projects.locations.awsNodePools.patch
.
Antes de começar
Para atualizar um node pool, tem de ter a seguinte autorização de gestão de acessos e identidade:
gkemulticloud.googleapis.com/awsNodePools.update
.
Para obter instruções sobre como gerir autorizações, consulte o artigo Conceda funções do IAM aos utilizadores.
Atualize um node pool
As secções seguintes explicam como fazer várias atualizações a um conjunto de nós. Um conjunto de nós é um grupo de nós num cluster que têm a mesma configuração. Todos os nós num cluster têm de pertencer a um conjunto de nós.
Pode atualizar vários parâmetros de um conjunto de nós ao mesmo tempo, especificando-os todos no mesmo comando. No entanto, por uma questão de clareza, este documento mostra como atualizar um único parâmetro de cada vez.
Altere a versão do node pool
No GKE no AWS, alterar a versão de um conjunto de nós significa alterar a versão do GKE que está a ser executada nos nós desse conjunto de nós.
Para alterar a versão do conjunto de nós, especifique a nova versão com a flag 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 node pool a atualizar.CLUSTER_NAME
: o nome do cluster ao qual anexar o grupo de nós.GOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster. Por exemplo,us-west1
.NODE_POOL_VERSION
: a nova versão do conjunto de nós suportada.
Atualize o tipo de instância do node pool
Um tipo de instância do node pool é o tipo de instância do AWS EC2 que é usado para criar
os nós num node pool. 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 conjunto de nós, especifique o novo tipo de instância
com a flag 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 node pool.CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região que gere o seu cluster. Google CloudINSTANCE_TYPE
: o novo tipo de instância de máquina da AWS para este conjunto de nós. Por exemplo,m5.xlarge
.
As atualizações ao tipo de instância do conjunto de nós não devem alterar a arquitetura da CPU subjacente da instância do EC2. Por exemplo, se o conjunto de nós original usar instâncias com CPUs x86, o tipo de instância atualizado tem de continuar a usar CPUs x86, em vez de alguma outra arquitetura.
Para ver uma lista completa das instâncias suportadas e das respetivas arquiteturas subjacentes, consulte os tipos de instâncias da AWS suportados.
Alterne a chave de encriptação de um node pool
Para obter informações sobre como atualizar as chaves de encriptação do KMS do seu conjunto de nós, consulte o artigo Rotação de chaves.
Substitua os grupos de segurança do node pool
Para atualizar os grupos de segurança anexados a um node pool, 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 node pool a atualizar.CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região que gere o seu cluster. Google CloudSECURITY_GROUP_IDS
: uma lista separada por vírgulas de grupos de segurança a anexar ao grupo de nós.
Para clusters com a versão 1.25 ou posterior do GKE, a atualização pode ser feita dinamicamente sem reiniciar os nós. Esta é a abordagem recomendada para clusters que usam o GKE v1.25 ou posterior.
Para fazer atualizações dinâmicas, a função de agente do serviço de API tem de ter as seguintes autorizações do AWS IAM:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Estas autorizações são atribuídas automaticamente à função de agente do serviço de API se escolher a função de agente do serviço de API predefinida quando cria o cluster.
Para clusters que executam versões anteriores do GKE ou clusters que executam as versões 1.25 ou posteriores, mas o agente do serviço da API não tem as autorizações para fazer uma atualização dinâmica, a atualização é feita através de uma atualização contínua. As atualizações contínuas são mais disruptivas do que as atualizações dinâmicas, porque as atualizações contínuas reiniciam os nós, enquanto as atualizações dinâmicas não o fazem. Para mais informações sobre as atualizações incrementais, consulte o artigo Atualizações rápidas.
Remova grupos de segurança do node pool
Pode remover todos os grupos de segurança não predefinidos anexados ao seu conjunto de nós executando o seguinte comando. Para mais informações sobre os grupos de segurança predefinidos, consulte o artigo Grupos de segurança do conjunto 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 node pool a atualizar.CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região que gere o seu cluster. Google Cloud
Redimensione um node pool
Para alterar o tamanho do conjunto de nós (ou seja, o número de nós no conjunto de nós), atribua novos valores aos flags 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 node pool a atualizar.CLUSTER_NAME
: o nome do cluster ao qual anexar o grupo de nós.GOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster. Por exemplo,us-west1
.MIN_NODES
: o número mínimo de nós que o node pool pode conter. O valor pode ser igual ou superior a0
.MAX_NODES
: o número máximo de nós que o node pool pode conter. O valor tem de ser, pelo menos,1
e superior ou igual ao valor deMIN_NODES
.
Mais detalhes sobre a alteração do tamanho dos conjuntos de nós
Antes de redimensionar um conjunto de nós, é importante avaliar as potenciais repercussões nas suas cargas de trabalho.
Ações de redimensionamento e respetivas consequências
Quando redimensiona conjuntos de nós, são acionadas diferentes ações com base na nova configuração e no estado atual dos nós. É essencial compreender estas ações e as respetivas implicações:
- Sem alterações: se a contagem de nós atual já estiver alinhada com o novo intervalo especificado, o GKE on AWS não faz ajustes ao número de nós.
- Aumentar o mínimo: se o novo número mínimo de nós for definido como superior à contagem existente, o GKE no AWS adiciona nós de forma incremental até atingir o tamanho mínimo recém-definido.
- Diminuir o máximo: se alterar a contagem máxima de nós para um valor inferior à contagem existente, o GKE on AWS realiza as seguintes ações:
- Desativa o redimensionador automático de clusters.
- Define o grupo de escala automática do conjunto de nós para o tamanho mínimo especificado.
- Seleciona nós individuais para remoção. Cada nó é isolado, as respetivas tarefas são esvaziadas e, em seguida, o nó é terminado. Este procedimento continua até ser atingido o tamanho máximo especificado.
- Modifica o grupo de escala automática do node pool para se alinhar com o novo tamanho máximo.
- Reativa o escalador automático do cluster assim que o tamanho máximo for atingido.
Para mais informações sobre o redimensionador automático de clusters, consulte o artigo Acerca do redimensionador automático de clusters.
Proteção da carga de trabalho durante a alteração do tamanho
Para garantir a disponibilidade contínua das cargas de trabalho durante a alteração do tamanho do conjunto de nós, o GKE no AWS oferece as seguintes salvaguardas:
Durante um esgotamento de nós, o GKE no AWS respeita a configuração
PodDisruptionBudget
durante, no máximo, uma hora. Os pods que permanecem no nó após este período são eliminados.Quando os nós são definidos para serem reiniciados ou removidos, o GKE no AWS garante o encerramento adequado e aguarda até duas horas. Se os pods permanecerem no nó após este período, a instância da máquina virtual subjacente é eliminada.
Verifique o estado do seu conjunto de nós
Para verificar se a atualização foi bem-sucedida, pode verificar o estado do conjunto 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 node pool.CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região que gere o seu cluster. Google Cloud
O GKE no AWS tenta fazer as atualizações pedidas ao conjunto de nós e, em seguida, faz uma verificação de funcionamento. Se algum dos passos de atualização falhar, o estado do node pool é marcado como DEGRADED
.
Cancele uma operação de atualização
Antes de poder cancelar uma atualização de pool de nós em curso, tem de determinar o nome da operação em curso. Para apresentar uma lista das operações em curso e os respetivos nomes, execute o seguinte comando:
gcloud container aws operations list--filter="status=PENDING OR status=RUNNING"
--location GOOGLE_CLOUD_LOCATION
Substitua GOOGLE_CLOUD_LOCATION
pela região suportada Google Cloud que gere o seu cluster. Por exemplo, us-west1
.
Procure o OPERATION_NAME
da atualização que quer cancelar no resultado do comando. Para ver uma lista de operações, consulte o artigo
gcloud container aws operations list.
Depois de identificar o OPERATION_NAME
, 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
: a região suportada Google Cloud que gere o seu cluster. Por exemplo,us-west1
.
Tenha em atenção que o cancelamento de uma atualização do conjunto de nós em curso não reverte as atualizações de nós que já foram concluídas. Isto pode resultar num conjunto de nós parcialmente atualizado.