Personalizza i componenti di sistema sui cluster conformi alla CNCF

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:

    • name
    • component
    • app
    • Qualsiasi etichetta che includa k8s.io o kubernetes.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 formato key=value:operator:effect, ad esempio workload=hpc:Equal:NoSchedule. Questa impostazione significa che il pod tollera un'incompatibilità solo se questa ha la chiave e il valore esatti di workload=hpc.
    • Per l'operatore Exists: utilizza il formato key:operator:effect, per esempio workload:Exists:NoSchedule. Questa impostazione significa che il pod tollera qualsiasi incompatibilità con la chiave workload sul 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'effetto NoSchedule e 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.

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