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 GKE allegati applicando tolleranze ed etichette personalizzate. Quando personalizzi questi componenti, hai una gestione più precisa di dove e come operano all'interno del 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, il che influisce sull'attestazione e sulla funzionalità complessive del cluster. Inoltre, potresti richiedere il controllo del posizionamento e della gestione dei componenti su nodi specifici, inclusa 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 un maggiore controllo e flessibilità sul modo in cui questi componenti operano nel tuo cluster. Puoi applicare tolleranze ed etichette personalizzate ai componenti di sistema di proprietà di Google:

  • Le tolleranze consentono ai componenti di Google di pianificare nodi con taint Kubernetes specifici, il che ti consente di applicare la separazione dei workload o utilizzare pool di nodi specializzati. Le tolleranze personalizzate risolvono direttamente i problemi in cui i taint 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 esistenti di monitoraggio, logging e applicazione delle norme.

Limitazioni e restrizioni

Si applicano le seguenti limitazioni e restrizioni:

  • 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, in quanto appartengono a etichette riservate in Kubernetes
    • Qualsiasi etichetta che includa google
    • Qualsiasi etichetta che includa gke.io

Aggiungi 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 flag --system-component-tolerations al comando gcloud container attached clusters register:

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 indica che il pod tollererà 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, ad esempio workload:Exists:NoSchedule. Questa impostazione indica che il pod tollererà qualsiasi incompatibilità con la chiave workload sul nodo, indipendentemente dal valore.
    • Per la pianificazione su qualsiasi nodo: utilizza il formato :operator:effect, ad esempio :Exists:NoSchedule. Questa impostazione indica 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