Personalize os componentes do sistema em clusters do AKS

Esta página descreve como personalizar os componentes do sistema pertencentes à Google nos seus clusters anexados do GKE aplicando tolerâncias e etiquetas personalizadas. Quando personaliza estes componentes, tem uma gestão mais precisa de onde e como estes componentes funcionam no seu ambiente.

Vista geral

Quando anexa um cluster ao Google Cloud, por predefinição, os componentes do sistema pertencentes à Google não incluem campos personalizáveis, como tolerâncias. Como resultado, pode ter problemas, como a falha na programação de pods em nós disponíveis, o que afeta a funcionalidade e a associação geral do cluster. Além disso, pode precisar de ter controlo sobre a colocação e a gestão de componentes em nós específicos que incluam a capacidade de aplicar etiquetas personalizadas para fins organizacionais e operacionais.

A personalização dos componentes do sistema resolve estes problemas e permite-lhe ter mais controlo e flexibilidade sobre a forma como estes componentes funcionam no seu cluster. Pode aplicar tolerâncias e etiquetas personalizadas a componentes do sistema pertencentes à Google:

  • As tolerâncias permitem que os componentes da Google sejam agendados em nós que tenham contaminações específicas do Kubernetes, o que lhe permite aplicar a separação de cargas de trabalho ou usar pools de nós especializados. As tolerâncias personalizadas resolvem diretamente os problemas em que as contaminações não modificáveis impedem o posicionamento adequado dos componentes.

  • As etiquetas oferecem uma forma flexível de categorizar e identificar os componentes do sistema da Google de acordo com os seus próprios padrões operacionais. As etiquetas personalizadas permitem uma melhor integração com as suas ferramentas de monitorização, registo e aplicação de políticas existentes.

Restrições e limitações

Aplicam-se as seguintes restrições e limitações:

  • Só pode adicionar tolerâncias e etiquetas personalizadas quando registar o seu cluster.
  • Pode adicionar até 10 tolerâncias personalizadas e 10 etiquetas personalizadas ao cluster.
  • Não pode usar as seguintes etiquetas:

    • name
    • component
    • app
    • Qualquer etiqueta que inclua k8s.io ou kubernetes.io, uma vez que pertencem a etiquetas reservadas no Kubernetes
    • Qualquer etiqueta que inclua google
    • Qualquer etiqueta que inclua gke.io

Adicione tolerâncias personalizadas

Os pods de componentes do sistema pertencentes à Google incluem sempre 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 o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • GOOGLE_CLOUD_REGION: a Google Cloud região a partir da qual vai administrar o cluster.
  • COMPONENT_TOLERATION: a lista separada por vírgulas das tolerâncias que quer adicionar. Pode 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. Esta definição significa que o pod tolera uma mancha apenas se a mancha 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. Esta definição significa que o pod tolera qualquer contaminação com a chave workload no nó, independentemente do valor.
    • Para agendar em qualquer nó: use o formato :operator:effect, por exemplo, :Exists:NoSchedule. Esta definição significa que o pod tolera qualquer mancha no nó que tenha o efeito NoSchedule e ignora a chave ou o valor da mancha.

    Para ver uma lista de operadores e efeitos que pode usar, consulte Restrições e tolerâncias na documentação do Kubernetes.

Adicione etiquetas personalizadas

Para especificar etiquetas personalizadas, 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 o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • GOOGLE_CLOUD_REGION: a Google Cloud região a partir da qual vai administrar o cluster.
  • COMPONENT_LABEL: a lista separada por vírgulas de uma ou mais etiquetas que quer adicionar. Indica uma etiqueta e um valor no formato de key=value. Por exemplo, env=production,region=us-east-1. Embora cada etiqueta tenha de ter uma chave, o valor associado a essa chave pode estar vazio. Por exemplo, backend="".

O que se segue?