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
oukubernetes.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 formatokey=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 deworkload=hpc
. - Para o operador
Exists
: use o formatokey:operator:effect
, por exemplo,workload:Exists:NoSchedule
. Esta definição significa que o pod tolera qualquer contaminação com a chaveworkload
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 efeitoNoSchedule
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.
- Para o operador
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?
- Saiba mais acerca de Taints e Tolerations na documentação do Kubernetes.
- Saiba como anexar o seu cluster do AKS.