Nesta página, descrevemos como personalizar componentes do sistema do Google nos seus clusters anexados do GKE aplicando tolerâncias e rótulos personalizados. Ao personalizar esses componentes, você tem um gerenciamento mais preciso de onde e como eles operam no seu ambiente.
Visão geral
Ao anexar um cluster ao Google Cloud, por padrão, os componentes do sistema de propriedade do Google não incluem campos personalizáveis, como tolerâncias. Como resultado, você pode ter problemas, como falha na programação de pods em nós disponíveis, o que afeta o anexo e a funcionalidade geral do cluster. Além disso, talvez seja necessário controlar a colocação e o gerenciamento de componentes em nós específicos, incluindo a capacidade de aplicar rótulos personalizados para fins organizacionais e operacionais.
A personalização dos componentes do sistema resolve esses problemas e permite mais controle e flexibilidade sobre como eles operam no cluster. É possível aplicar tolerâncias e rótulos personalizados a componentes do sistema de propriedade do Google:
As tolerâncias permitem que os componentes do Google sejam programados em nós com taints específicos do Kubernetes, o que permite aplicar a separação de cargas de trabalho ou usar pools de nós especializados. As tolerâncias personalizadas resolvem diretamente problemas em que taints imutáveis impedem o posicionamento adequado dos componentes.
Os rótulos oferecem uma maneira flexível de categorizar e identificar os componentes do sistema do Google de acordo com seus próprios padrões operacionais. Os rótulos personalizados permitem uma melhor integração com as ferramentas atuais de monitoramento, geração de registros e aplicação de políticas.
Restrições e limitações
As seguintes restrições e limitações são válidas:
- Só é possível adicionar tolerâncias e rótulos personalizados ao registrar seu cluster.
- É possível adicionar até 10 tolerâncias e 10 rótulos personalizados ao cluster.
Não é possível usar os seguintes marcadores:
name
component
app
- Qualquer rótulo que inclua
k8s.io
oukubernetes.io
, já que eles pertencem a rótulos reservados no Kubernetes - Qualquer marcador que inclua
google
- Qualquer marcador que inclua
gke.io
Adicionar tolerâncias personalizadas
Os pods de componentes do sistema de propriedade do Google sempre incluem a seguinte tolerância:
- key: components.gke.io/gke-managed-components
operator: Exists
Para especificar tolerâncias personalizadas, adicione a flag --system-component-tolerations
ao comando
gcloud container attached clusters register
:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-tolerations=COMPONENT_TOLERATION \
Substitua:
- CLUSTER_NAME: o nome do cluster.
- GOOGLE_CLOUD_REGION: a região Google Cloud para administrar o cluster.
COMPONENT_TOLERATION: a lista separada por vírgulas das tolerâncias que você quer adicionar. É possível fornecer uma chave, um valor, um operador e um efeito nos seguintes formatos:
- Para o operador
Equal
: use o formatokey=value:operator:effect
, por exemplo,workload=hpc:Equal:NoSchedule
. Essa configuração significa que o pod tolera um taint somente se ele tiver a chave e o valor exatos deworkload=hpc
. - Para o operador
Exists
: use o formatokey:operator:effect
, por exemplo,workload:Exists:NoSchedule
. Essa configuração significa que o pod tolera qualquer taint com a chaveworkload
no nó, independente do valor. - Para programar em qualquer nó: use o formato
:operator:effect
, por exemplo,:Exists:NoSchedule
. Essa configuração significa que o pod tolera qualquer taint no nó que tenha o efeitoNoSchedule
e ignora a chave ou o valor do taint.
Para conferir uma lista de operadores e efeitos que você pode usar, consulte Taints e tolerâncias na documentação do Kubernetes.
- Para o operador
Adicionar rótulos personalizados
Para especificar rótulos personalizados, adicione a flag --system-component-labels
ao comando gcloud container attached clusters register
:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-labels=COMPONENT_LABEL \
Substitua:
- CLUSTER_NAME: o nome do cluster.
- GOOGLE_CLOUD_REGION: a região Google Cloud para administrar o cluster.
- COMPONENT_LABEL: a lista separada por vírgulas de um ou mais
rótulos que você quer adicionar. Você fornece um rótulo e um valor no formato
key=value
. Por exemplo,env=production,region=us-east-1
. Embora todo rótulo precise ter uma chave, o valor associado a ela pode estar vazio. Por exemplo,backend=""
.
A seguir
- Saiba mais sobre Taints e tolerâncias na documentação do Kubernetes.
- Saiba como anexar seu cluster do EKS.