Personalizar componentes do sistema em clusters do AKS

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:

    • name
    • component
    • app
    • Qualquer rótulo que inclua k8s.io ou kubernetes.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 formato key=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 de workload=hpc.
    • Para o operador Exists: use o formato key:operator:effect, por exemplo, workload:Exists:NoSchedule. Essa configuração significa que o pod tolera qualquer taint com a chave workload no 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 efeito NoSchedule e 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.

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