Nesta página, descrevemos como personalizar os componentes do sistema do Google nos clusters anexados ao 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
Quando você anexa um cluster ao Google Cloud, por padrão, os componentes do sistema 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 a funcionalidade e o anexo geral do cluster. Além disso, talvez seja necessário controlar a colocação e o gerenciamento de componentes em nós específicos que incluem a capacidade de aplicar rótulos personalizados para fins organizacionais e operacionais.
A personalização dos componentes do sistema resolve esses problemas e permite que você tenha mais controle e flexibilidade sobre como esses componentes operam no cluster. É possível aplicar tolerâncias e rótulos personalizados aos componentes do sistema do Google:
As tolerâncias permitem que os componentes do Google sejam programados em nós que têm taints específicos do Kubernetes, o que permite impor a separação da carga de trabalho ou usar pools de nós especializados. As tolerâncias personalizadas resolvem diretamente problemas em que taints não modificáveis impedem a colocação adequada de 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 de monitoramento, geração de registros e aplicação de políticas.
Restrições e limitações
As seguintes restrições e limitações se aplicam:
- Só é possível adicionar tolerâncias e rótulos personalizados ao registrar o cluster.
- É possível adicionar até 10 tolerâncias e 10 rótulos personalizados ao cluster.
Você não pode usar os seguintes rótulos:
namecomponentapp- Qualquer rótulo que inclua
k8s.iooukubernetes.io, já que eles pertencem a rótulos reservados no Kubernetes - Qualquer rótulo que inclua
google - Qualquer rótulo que inclua
gke.io
Adicionar tolerâncias personalizadas
Os pods de componentes do sistema 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: aregião em que o cluster será administrado. Google Cloud
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 chaveworkloadno nó, independentemente do valor. - Para programação 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 efeitoNoSchedulee ignora a chave ou o valor do taint.
Para 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: aregião em que o cluster será administrado. Google Cloud
- 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 cada 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 o cluster do AKS.