Nesta página, fornecemos instruções sobre como atualizar dinamicamente os rótulos e taints de nó de um pool de nós em um cluster padrão do Google Kubernetes Engine (GKE).
Também é possível aplicar e atualizar dinamicamente as tags de rede nos clusters do Autopilot do GKE ou do Standard. Para receber instruções, consulte Usar tags de rede para aplicar regras de firewall aos nós.
Visão geral
Os taints e rótulos de nós estão nos metadados de objeto dos nós do Kubernetes. Os rótulos são usados para programar pods em nós específicos, em que os taints podem ser usados para afastar os pods deles.
Com a API Kubernetes Engine, é possível aplicar atualizações nos rótulos de nós e taints de nó de um pool de nós atual do GKE sem precisar recriar o pool de nós ou interromper a execução de cargas de trabalho. A configuração do pool de nós atualizada é preservada no GKE. Assim, os upgrades futuros do pool de nós e as novas provisões de nós no pool usarão a nova configuração.
Limitações
Há algumas limitações no uso da API Kubernetes Engine para atualizar dinamicamente as configurações do pool de nós:
- A versão do pool de nós precisa ser 1.19.7-gke.1500 ou posterior.
- A versão do plano de controle do cluster precisa ser 1.23.4-gke.300 ou posterior para aplicar atualizações aos rótulos ou taints de nó para pools de nós atuais com o escalonador automático de clusters ativado. Para clusters em versões anteriores, use a seguinte solução alternativa: Desativar o escalonamento automático no pool de nós e atualizar os rótulos e/ou taints do nó. Depois que as atualizações forem aplicadas, reative o escalonamento automático.
Como atualizar rótulos de nós
Para atualizar os rótulos de um pool de nós, use o seguinte comando:
gcloud container node-pools update NODEPOOL_NAME \
--node-labels=[NODE_LABEL,...] \
[--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
[GCLOUD_WIDE_FLAG …]
Substitua:
NODEPOOL_NAME
: o nome do pool de nós a ser atualizado;[NODE_LABEL,...]
: os novos rótulos de nó desejados (por exemplo,label1=value1,label2=value2
);CLUSTER_NAME
: o nome do cluster.REGION
: a região do Compute Engine para o cluster;ZONE
: a zona do Compute Engine para o cluster.
Como atualizar taints de nós
Para atualizar os taints de nó para um pool de nós, use o comando a seguir:
gcloud container node-pools update NODEPOOL_NAME \
--node-taints=[NODE_TAINT,...] \
[--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
[GCLOUD_WIDE_FLAG …]
Substitua:
NODEPOOL_NAME
: o nome do pool de nós a ser atualizado;[NODE_TAINT,...]
: os novos taints de nó desejados (por exemplo,key1=val1:NoSchedule,key2=val2:PreferNoSchedule
).CLUSTER_NAME
: o nome do cluster.REGION
: a região do Compute Engine para o cluster;ZONE
: a zona do Compute Engine para o cluster.
A seguir
- Saiba mais sobre os taints de nó para controlar a programação.
- Saiba mais sobre tags de rede.
- Saiba mais sobre rótulos