Questa pagina descrive come personalizzare i componenti di sistema di proprietà di Google nei cluster collegati GKE applicando tolleranze ed etichette personalizzate. Quando personalizzi questi componenti, hai una gestione più precisa di dove e come questi componenti operano nel tuo ambiente.
Panoramica
Quando colleghi un cluster a Google Cloud, per impostazione predefinita, i componenti di sistema di proprietà di Google non includono campi personalizzabili come le tolleranze. Di conseguenza, potresti riscontrare problemi come la mancata pianificazione dei pod sui nodi disponibili, che influiscono sul collegamento e sulla funzionalità complessivi del cluster. Inoltre, potresti aver bisogno di controllare il posizionamento e la gestione dei componenti su nodi specifici che includono la possibilità di applicare etichette personalizzate per scopi organizzativi e operativi.
La personalizzazione dei componenti di sistema risolve questi problemi e ti consente di avere maggiore controllo e flessibilità sul funzionamento di questi componenti nel cluster. Puoi applicare tolleranze ed etichette personalizzate ai componenti di sistema di proprietà di Google:
Le tolleranze consentono ai componenti di Google di pianificare i nodi che hanno incompatibilità Kubernetes specifiche, il che ti consente di applicare la separazione dei carichi di lavoro o di utilizzare pool di nodi specializzati. Le tolleranze personalizzate risolvono direttamente i problemi in cui le incompatibilità non modificabili impediscono il corretto posizionamento dei componenti.
Le etichette offrono un modo flessibile per classificare e identificare i componenti di sistema di Google in base ai tuoi standard operativi. Le etichette personalizzate consentono una migliore integrazione con gli strumenti di monitoraggio, logging e applicazione delle policy esistenti.
Restrizioni e limitazioni
Si applicano le seguenti restrizioni e limitazioni:
- Puoi aggiungere tolleranze ed etichette personalizzate solo quando registri il cluster.
- Puoi aggiungere fino a 10 tolleranze personalizzate e 10 etichette personalizzate al cluster.
Non puoi utilizzare le seguenti etichette:
namecomponentapp- Qualsiasi etichetta che includa
k8s.iookubernetes.io, poiché appartengono alle etichette riservate in Kubernetes - Qualsiasi etichetta che includa
google - Qualsiasi etichetta che includa
gke.io
Aggiungere tolleranze personalizzate
I pod dei componenti di sistema di proprietà di Google includono sempre la seguente tolleranza:
- key: components.gke.io/gke-managed-components
operator: Exists
Per specificare tolleranze personalizzate, aggiungi il --system-component-tolerations flag al
gcloud container attached clusters register comando:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-tolerations=COMPONENT_TOLERATION \
Sostituisci quanto segue:
- CLUSTER_NAME: il nome del tuo cluster.
- GOOGLE_CLOUD_REGION: la Google Cloud regione da cui amministrare il cluster.
COMPONENT_TOLERATION: l'elenco separato da virgole delle tolleranze che vuoi aggiungere. Puoi fornire una chiave, un valore, un operatore e un effetto nei seguenti formati:
- Per l'operatore
Equal: utilizza il formatokey=value:operator:effect, ad esempioworkload=hpc:Equal:NoSchedule. Questa impostazione significa che il pod tollera un'incompatibilità solo se questa ha la chiave e il valore esatti diworkload=hpc. - Per l'operatore
Exists: utilizza il formatokey:operator:effect, per esempioworkload:Exists:NoSchedule. Questa impostazione significa che il pod tollera qualsiasi incompatibilità con la chiaveworkloadsul nodo, indipendentemente dal valore. - Per la pianificazione su qualsiasi nodo: utilizza il formato
:operator:effect, per esempio,:Exists:NoSchedule. Questa impostazione significa che il pod tollera qualsiasi incompatibilità sul nodo con l'effettoNoSchedulee ignora la chiave o il valore dell'incompatibilità.
Per un elenco degli operatori e degli effetti che puoi utilizzare, consulta Incompatibilità e tolleranze nella documentazione di Kubernetes.
- Per l'operatore
Aggiungere etichette personalizzate
Per specificare etichette personalizzate, aggiungi il flag --system-component-labels al comando gcloud container attached clusters register:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-labels=COMPONENT_LABEL \
Sostituisci quanto segue:
- CLUSTER_NAME: il nome del tuo cluster.
- GOOGLE_CLOUD_REGION: la Google Cloud regione da cui amministrare il cluster.
- COMPONENT_LABEL: l'elenco separato da virgole di una o più
etichette che vuoi aggiungere. Fornisci un'etichetta e un valore nel formato
key=value. Ad esempio,env=production,region=us-east-1. Sebbene ogni etichetta debba avere una chiave, il valore associato a questa chiave può essere vuoto. Ad esempio,backend="".
Passaggi successivi
- Scopri di più su incompatibilità e tolleranze nella documentazione di Kubernetes.
- Scopri come collegare il cluster conforme a CNCF.