Crea e gestisci le etichette del cluster e del pool di nodi


Questa pagina fornisce una panoramica delle etichette dei cluster e dei pool di nodi in Google Kubernetes Engine (GKE).

Etichette del cluster GKE e del pool di nodi, oltre alle etichette Kubernetes

Le etichette del cluster GKE e del pool di nodi sono distinte in Kubernetes. I due sistemi di etichettatura funzionano in modo indipendente e non ereditano né condividono le etichette.

Le etichette del cluster GKE e del pool di nodi sono metadati arbitrari collegati alle tue risorse che puoi usare per monitorare l'utilizzo dati di fatturazione.

Separatamente, in Kubernetes, il sistema utilizza le etichette internamente per tra componenti e risorse del cluster (ad esempio pod e nodi) e gestire i cicli di vita delle risorse. Puoi modificare le etichette Kubernetes con l'API Kubernetes. Puoi anche utilizzare l'API GKE per modificare Kubernetes sulle etichette sui nodi con la creazione del cluster o con un aggiornamento del cluster.

Cosa sono le etichette del cluster?

L'etichetta di un cluster è una coppia chiave-valore che puoi assegnare ai cluster Google Cloud. Aiutano a organizzare queste risorse e a gestire i costi su larga scala, con la granularità di cui hai bisogno. Puoi collegare un'etichetta a ogni risorsa, quindi filtrare a risorse in base alle loro etichette. Le informazioni sulle etichette vengono inoltrate al sistema di fatturazione che ti consente di suddividere gli addebiti fatturati per etichetta. Grazie ai report sulla fatturazione integrati, puoi filtrare e raggruppare i costi per etichette delle risorse. Puoi utilizzare le etichette anche eseguire query sulle esportazioni dei dati di fatturazione.

Requisiti per le etichette del cluster

Le etichette del cluster applicate a una risorsa devono soddisfare i seguenti requisiti requisiti:

  • Ogni risorsa può avere fino a 64 etichette di cluster.
  • Ogni etichetta del cluster deve essere una coppia chiave-valore.
  • Le chiavi hanno una lunghezza minima di 1 carattere e una lunghezza massima di 63 e non può essere vuoto. I valori possono essere vuoti e avere una lunghezza massima di 63 caratteri.
  • Le chiavi e i valori possono contenere solo lettere minuscole, caratteri numerici, trattini bassi e trattini. Tutti i caratteri devono utilizzare la codifica UTF-8 e sono consentiti caratteri internazionali. Le chiavi devono iniziare con una lettera minuscola o internazionale.
  • La parte della chiave dell'etichetta di un cluster deve essere univoca all'interno di una singola risorsa. Tuttavia, puoi utilizzare la stessa chiave con più risorse.

Questi limiti si applicano alla chiave e al valore per ogni etichetta del cluster, alle singole risorse Google Cloud con etichette del cluster. Là non esiste un limite al numero di etichette del cluster che puoi applicare a tutte le risorse all'interno di un progetto.

Utilizzi comuni delle etichette dei cluster

Ecco alcuni casi d'uso comuni per le etichette dei cluster:

  • Etichette del cluster del team o del centro di costo: aggiungi etichette in base al team o di costo per distinguere i cluster di proprietà di team (ad es. team:research e team:analytics). Puoi utilizzare questo tipo di etichetta per la contabilizzazione dei costi o la definizione del budget.

  • Etichette del cluster dei componenti: ad esempio, component:redis, component:frontend, component:ingest e component:dashboard.

  • Etichette del cluster di ambiente o fase: ad esempio, environment:production e environment:test.

  • Etichette del cluster di stato: ad esempio, state:active, state:readytodelete e state:archive.

  • Etichette del cluster di proprietà: utilizzate per identificare i team che sono responsabile delle operazioni, ad esempio: team:shopping-cart.

Sconsigliamo di creare un numero elevato di etichette univoche, ad esempio: per timestamp o singoli valori per ogni chiamata API. Il problema di questo approccio è che quando i valori cambiano spesso o con che ingombrano il catalogo, rendendo difficile l'applicazione di filtri e e creare report sulle risorse.

Etichette e tag

Le etichette possono essere utilizzate come annotazioni interrogabili per le risorse, ma non possono essere utilizzate per impostare delle condizioni sui criteri. I tag offrono un modo per consentire o di negare i criteri in base al fatto che una risorsa abbia un tag specifico, fornendo controllo sui criteri. Per ulteriori informazioni, consulta Panoramica dei tag.

Etichette applicate automaticamente

GKE applica automaticamente diverse etichette alle risorse del cluster.

Ad esempio, GKE applica etichette alle istanze di Compute Engine, dischi permanenti e acceleratori (TPU).

La tabella seguente elenca le etichette che GKE si applica automaticamente alle risorse:

Etichetta Risorse applicate
goog-gke-node Istanza VM di Compute Engine sottostante un nodo GKE.
goog-gke-volume Disco permanente di Compute Engine collegato a un'istanza VM sottostante un nodo GKE.
goog-gke-tpu Cloud TPU su GKE.
goog-k8s-cluster-name Istanza VM di Compute Engine e dischi permanenti collegati a un'istanza VM sottostante un nodo GKE.
goog-k8s-cluster-location Istanza VM di Compute Engine e dischi permanenti collegati a un'istanza VM sottostante un nodo GKE.
goog-k8s-node-pool-name Istanze VM di Compute Engine e i relativi dischi di avvio sottostanti un nodo GKE.
goog-fleet-project Istanza VM di Compute Engine e dischi permanenti collegati a un'istanza VM sottostante un nodo GKE, se il cluster è registrato in un parco risorse.

Non modificare o eliminare le etichette riservate. Qualsiasi modifica apportata vengono riconciliate automaticamente.

Propagazione etichette

In GKE, puoi applicare etichette ai cluster Pool di nodi in modalità Standard. Quando etichetti un cluster, l'etichetta si propaga a tutte le singole risorse del cluster, come nodi, di Compute Engine e i dischi permanenti. Quando etichetti un pool di nodi, l'etichetta si propaga a tutte le singole risorse del pool di nodi, come le istanze dei dischi permanenti standard. Nei cluster Standard, se le etichette del cluster sono in conflitto con le etichette del pool di nodi, ad esempio quando la chiave di etichetta è la stessa ma il valore è diverse, le etichette del pool di nodi prevalgono sulle etichette del cluster.

Qualsiasi etichetta applicata ai cluster o ai pool di nodi si propaga attraverso un in background che viene eseguito ogni ora. Può essere necessaria fino a un'ora prima che un'etichetta vengono visualizzati su tutte le risorse associate a un determinato cluster. Inoltre, le etichette si propagano solo alle istanze di Compute Engine e ai dischi permanenti collegati alle istanze di Compute Engine. Altre risorse come i carichi di lavoro, l'inoltro regole, indirizzi IP e dischi permanenti non collegati non sono etichettati.

Per i cluster standard, quando vengono applicate etichette di cluster e pool di nodi alle risorse di Compute Engine, modificare manualmente le etichette delle risorse senza che queste modifiche vengano riconciliate da GKE. Nel Autopilot, non puoi modificare manualmente le etichette Risorse Compute Engine perché GKE gestisce i nodi per te. Tuttavia, consigliamo di gestire queste etichette tramite GKE. Le etichette esistenti su Compute Engine risorse non verranno rimosse da GKE a meno che non siano in conflitto con le etichette applicate automaticamente.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine .
  • Se vuoi utilizzare Google Cloud CLI per questa attività, install e poi initialize con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Recupero di un'impronta digitale dell'etichetta per le richieste API

Puoi saltare questo passaggio se utilizzi la console Google Cloud o con gcloud CLI.

Quando aggiorni o aggiungi etichette del cluster utilizzando l'API GKE, devi fornire la più recente impronta dell'etichetta del cluster con la tua richiesta per evitare conflitti con altre richieste.

Per ottenere l'impronta digitale dell'etichetta del cluster più recente, esegui una richiesta GET per nel cluster appropriato. Ad esempio:

GET https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster

L'output è simile al seguente:

200 OK

{

 "name": "mycluster",
 "description": "production-cluster",
 "initialNodeCount": 3,
 ...
 "resourceLabels": {
    "environment": "production",
    ...
  },
  "labelFingerprint": "p1ty_9HoBk0="
}

In questo output, la proprietà labelFingerprint è l'impronta digitale dell'etichetta del cluster.

Crea un cluster con etichette

Puoi creare cluster Autopilot e Standard con etichette utilizzando gcloud CLI, la console Google Cloud, l'API GKE o Terraform.

gcloud

Esegui questo comando per creare un cluster Autopilot con etichette:

gcloud container clusters create-auto CLUSTER_NAME \
    --labels=KEY=VALUE

In alternativa, esegui questo comando per creare un cluster Standard con etichette:

gcloud container clusters create CLUSTER_NAME \
    --labels=KEY=VALUE

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster.
  • KEY: chiave della coppia chiave-valore dell'etichetta.
  • VALUE: il valore della coppia chiave-valore dell'etichetta.

Console

Per aggiungere etichette durante la creazione del cluster:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il cluster.

  4. Nel riquadro di navigazione, in Cluster, fai clic su Metadati.

  5. Fai clic su Aggiungi etichetta.

  6. Aggiungi etichette.

  7. Fai clic su Crea.

API

Per includere un'etichetta durante la creazione del cluster, specifica resourceLabels all'interno dell'oggetto cluster fornito projects.zones.clusters.create.

Terraform

Per creare un cluster Autopilot con etichette utilizzando Terraform, consulta al seguente esempio:

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-labels"
  location = "us-central1"

  enable_autopilot = true

  resource_labels = {
    foo = "bar"
  }

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

Per creare un cluster Standard con etichette utilizzando Terraform, consulta nell'esempio seguente:

resource "google_container_cluster" "default" {
  name               = "gke-standard-regional-labels"
  location           = "us-west1"
  initial_node_count = 2

  resource_labels = {
    foo = "bar"
  }

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

Per saperne di più sull'utilizzo di Terraform, consulta Supporto Terraform per GKE.

Aggiungi o aggiorna le etichette per i cluster esistenti

Puoi aggiungere o aggiornare le etichette per Autopilot e i cluster standard con gcloud CLI, la console Google Cloud o l'API GKE.

gcloud

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --update-labels=KEY=VALUE

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • COMPUTE_REGION: il valore Regione di Compute Engine per il nuovo cluster. Per i cluster standard a livello di zona, utilizza --zone=COMPUTE_ZONE.
  • KEY: chiave della coppia chiave-valore dell'etichetta.
  • VALUE: il valore della coppia chiave-valore dell'etichetta.

L'aggiornamento delle etichette sovrascrive tutte le etichette esistenti nel cluster. Se ha etichette esistenti che vuoi conservare, devi includerle insieme alle nuove etichette che vuoi aggiungere.

Console

Per aggiungere o aggiornare le etichette:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nella pagina Dettagli cluster, seleziona le caselle di controllo per uno o più ai cluster da modificare.

  3. Fai clic su Etichette.

  4. Aggiungi o aggiorna le etichette.

  5. Fai clic su Salva.

API

Effettua una richiesta POST al cluster resourceLabels con la versione più recente di fingerprint e un elenco completo le etichette da applicare.

Simile a metadati e tag, se il cluster ha etichette esistenti che vuoi devi includere queste etichette nella richiesta insieme a eventuali delle etichette che desideri aggiungere.

Ad esempio, il seguente snippet invia una richiesta a resourceLabels :

POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels

{
 "resourceLabels": {
  "environment": "production",
  "an-existing-tag": ""
 },
 "labelFingerprint": "42WmSpB8rSM="
}

Rimuovi le etichette del cluster

Puoi rimuovere le etichette dai cluster Autopilot e Standard utilizzando gcloud CLI, la console Google Cloud l'API GKE.

gcloud

Esegui il comando update con il flag --remove-labels:

gcloud container clusters update CLUSTER_NAME \
    --remove-labels=KEYS

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster.
  • KEYS: un elenco separato da virgole di chiavi per le etichette da rimuovere.

Console

Per rimuovere le etichette:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, seleziona le caselle di controllo di una o più ai cluster da modificare.

  3. Fai clic su Etichette.

  4. Fai clic su Elimina elemento al campo Valore per le etichette da eliminare.

  5. Fai clic su Salva.

API

Effettua una richiesta POST al metodo resourceLabels per l'oggetto nel cluster appropriato. Fornisci il valore labelsFingerprint attuale e un campo vuoto un elenco di etichette per rimuovere tutte le etichette oppure fornire un elenco di etichette da rimuovere mantenere, omettendo le etichette da rimuovere. Ad esempio:

Request

POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels

{
 "resourceLabels": { },
 "labelFingerprint": "42WmSpB8rSM="
}

Crea un pool di nodi standard con etichette

Puoi creare un pool di nodi con etichette in un cluster Standard utilizzando gcloud CLI, la console Google Cloud o l'API GKE.

gcloud

Esegui questo comando:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --labels=KEY=VALUE

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi.
  • CLUSTER_NAME: il nome del cluster.
  • COMPUTE_REGION: il Compute Engine region per il tuo cluster. Per cluster di zona, usa --zone=COMPUTE_ZONE.
  • KEY: chiave della coppia chiave-valore dell'etichetta.
  • VALUE: il valore della coppia chiave-valore dell'etichetta.

API

Per includere un'etichetta durante la creazione del pool di nodi, specifica Oggetto resourceLabels all'interno dell'oggetto del pool di nodi che fornisci projects.zones.clusters.nodePools.create.

Console

Per aggiungere etichette al nuovo pool di nodi, esegui la seguenti:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nella pagina Dettagli cluster, fai clic sul nome del cluster che ti interessa. da modificare.

  3. Fai clic su Aggiungi pool di nodi.

  4. Configura il nuovo pool di nodi.

  5. Nel riquadro di navigazione, fai clic su Metadati.

  6. Fai clic su Aggiungi etichetta.

  7. Aggiungi etichette.

  8. Fai clic su Crea.

Aggiungi o aggiorna le etichette per un pool di nodi esistente

Puoi aggiungere o aggiornare le etichette per i pool di nodi esistenti utilizzando il gcloud CLI, la console Google Cloud o l'API GKE.

gcloud

Esegui questo comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --labels=KEY=VALUE

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi
  • CLUSTER_NAME: il nome del cluster.
  • COMPUTE_REGION: il Compute Engine region per il tuo cluster. Per cluster di zona, usa --zone=COMPUTE_ZONE.
  • KEY: chiave della coppia chiave-valore dell'etichetta.
  • VALUE: il valore della coppia chiave-valore dell'etichetta.

L'aggiornamento delle etichette sovrascrive tutte le etichette esistenti nel pool di nodi. Se nel pool di nodi contiene etichette esistenti che vuoi conservare, devi includerle insieme alle nuove etichette che vuoi aggiungere.

API

Per includere un'etichetta quando modifichi il pool di nodi, specifica resourceLabels all'interno dell'oggetto del pool di nodi fornito projects.zones.clusters.nodePools.update.

Console

Per aggiungere o aggiornare le etichette:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster contiene il pool di nodi che vuoi modificare.

  3. Nella sezione Pool di nodi, fai clic sul nome del pool di nodi che si desidera modificare.

  4. Fai clic su Modifica

  5. Nella sezione Etichette, aggiungi o aggiorna le etichette.

  6. Fai clic su Salva.

Rimuovi etichette del pool di nodi

Puoi rimuovere le etichette dai pool di nodi utilizzando gcloud CLI, la console Google Cloud o l'API GKE.

gcloud

Esegui questo comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --labels=KEY=VALUE

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi.
  • CLUSTER_NAME: il nome del cluster.
  • COMPUTE_REGION: il Compute Engine region per il tuo cluster. Per cluster di zona, usa --zone=COMPUTE_ZONE.
  • KEY: chiave della coppia chiave-valore dell'etichetta.
  • VALUE: il valore della coppia chiave-valore dell'etichetta.

L'aggiornamento delle etichette sovrascrive tutte le etichette esistenti nel pool di nodi. Se un pool di nodi contiene etichette esistenti che vuoi conservare, devi escludere eventuali etichette da rimuovere. Se vuoi rimuovere tutte le etichette, utilizza --labels= senza coppie chiave/valore.

API

Per includere un'etichetta quando modifichi il pool di nodi, specifica Oggetto resourceLabels all'interno dell'oggetto del pool di nodi che fornisci projects.zones.clusters.nodePools.update. Fornisci un elenco vuoto di etichette per rimuoverle tutte oppure fornisci un elenco di le etichette da conservare. Ometti le etichette da rimuovere.

Console

Per rimuovere le etichette da un pool di nodi, segui questi passaggi

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster contiene il pool di nodi che vuoi modificare.

  3. Nella sezione Pool di nodi, fai clic sul nome del pool di nodi che si desidera modificare.

  4. Fai clic su Elimina elemento accanto all' Valore per le etichette da eliminare.

  5. Fai clic su Salva.

Passaggi successivi

Leggi la panoramica di GKE.