Gestisci i cluster

Questo documento mostra come gestire i cluster in Google Kubernetes Engine (GKE). Per scoprire come funzionano i cluster, consulta Architettura del cluster.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installala e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo il comando gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.

Visualizzare i cluster

gcloud

  • Per visualizzare un cluster specifico, esegui questo comando:

    gcloud container clusters describe CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster.
    • CONTROL_PLANE_LOCATION: la posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
  • Per elencare tutti i cluster di un progetto in qualsiasi regione o zona, esegui questo comando:

    gcloud container clusters list
    
  • Per elencare i cluster che si trovano nella regione o nella zona specifica, esegui questo comando:

    gcloud container clusters list \
        --location=CONTROL_PLANE_LOCATION
    

Console

Per visualizzare i tuoi cluster, vai alla pagina Google Kubernetes Engine nella console Google Cloud .

Vai a Google Kubernetes Engine

Per visualizzare ulteriori informazioni su un cluster, selezionalo dall'elenco.

Impostare un cluster predefinito per kubectl

Se hai più cluster, puoi impostarne uno predefinito per lo strumento a riga di comando kubectl.

Per saperne di più, consulta Impostare un cluster predefinito per i comandi kubectl.

Impostare un cluster predefinito per gcloud

Per impostare un cluster predefinito per i comandi gcloud, esegui questo comando:

gcloud config set container/cluster CLUSTER_NAME

Sostituisci CLUSTER_NAME con il nome del tuo cluster.

Esegui l'upgrade dei cluster

Per impostazione predefinita, GKE esegue automaticamente l'upgrade dei cluster. Tuttavia, puoi scegliere di eseguire l'upgrade dei cluster Standard autonomamente. Per saperne di più, consulta Eseguire l'upgrade manuale di un cluster.

Per indicazioni sull'upgrade dei cluster, consulta Best practice per l'upgrade dei cluster.

Aggiungere o rimuovere zone in un cluster Standard

Le sezioni seguenti spiegano come aggiungere o rimuovere zone del cluster. Tutte le zone devono trovarsi nella regione del cluster.

Modificare le zone per i cluster zonali

Per i cluster zonali esistenti, puoi aggiungere o rimuovere zone.

gcloud

Per aggiungere o rimuovere zone per un cluster zonale, utilizza il comando gcloud container clusters update:

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome che scegli per il cluster.
  • CONTROL_PLANE_LOCATION: la zona di Compute Engine del control plane del cluster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: le zone in cui vengono creati i nodi. Puoi specificare tutte le zone necessarie per il tuo cluster. Tutte le zone devono trovarsi nella stessa regione del control plane del cluster, specificata dal flag --location. Per i cluster zonali, --node-locations deve contenere la zona principale del cluster.

Ad esempio, example-cluster viene eseguito in us-central1-a. Per aggiungere altre due zone al cluster, esegui questo comando:

gcloud container clusters update example-cluster \
  --location us-central1-a
  --node-locations us-central1-a,us-central1-b,us-central1-c

Un altro esempio è example-cluster, che si svolge a us-central1-a, us-central1-b e us-central1-c. Se vuoi che il cluster venga eseguito solo in us-central1-a e us-central1-b, esegui questo comando:

gcloud container clusters update example-cluster \
  --location us-central1-a \
  --node-locations us-central1-a,us-central1-b

Console

Per aggiungere o rimuovere zone in un cluster esistente, segui questi passaggi:

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

    Vai a Google Kubernetes Engine

  2. Accanto al cluster che vuoi modificare, fai clic su Azioni, poi su Modifica.

  3. Nella scheda Dettagli, per il campo Zone dei nodi predefinite, fai clic su Modifica pool di nodi.

  4. Seleziona le zone che preferisci e salva le modifiche.

Modificare le zone per i cluster regionali

Al momento è possibile modificare le zone per i cluster regionali esistenti solo utilizzando il comando gcloud.

Per aggiungere o rimuovere zone per un cluster regionale, utilizza il comando gcloud container clusters update con il flag --node-locations:

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster.
  • CONTROL_PLANE_LOCATION: la regione di Compute Engine del control plane del tuo cluster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: la regione del control plane zone in cui vengono creati i nodi. Le zone devono trovarsi nello stesso CONTROL_PLANE_LOCATION del control plane del cluster, specificato dal flag --location.

Ad esempio, example-cluster viene eseguito in us-central1-a e us-central1-b. Per aggiungere us-central1-c, esegui questo comando:

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b,us-central1-c

Un altro esempio è example-cluster, che si svolge a us-central1-a, us-central1-b e us-central1-c. Se vuoi che il cluster venga eseguito solo in us-central1-a e us-central1-b, esegui questo comando:

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b

Ridimensionare i cluster

Puoi ridimensionare un cluster Standard per aumentare o diminuire il numero di nodi. Ad esempio, se vuoi impedire al cluster di consumare risorse senza eliminarlo, puoi ridurre il numero di nodi a zero. Per saperne di più sul ridimensionamento, vedi Ridimensionamento di un cluster.

I cluster Autopilot vengono dimensionati automaticamente in base alle specifiche dei pod, quindi non devi preoccuparti di ridimensionare il cluster. Ad esempio, se modifichi il numero di repliche del pod o le risorse richieste, il cluster verrà ridimensionato di conseguenza.

Se vuoi un modo più efficiente per ottimizzare i cluster, puoi anche utilizzare la scalabilità automatica verticale dei pod (VPA). Lo strumento di scalabilità automatica può consigliare valori per le richieste e i limiti di CPU e memoria oppure può aggiornare automaticamente i valori.

Elimina cluster

Se necessario, puoi eliminare un cluster. Per saperne di più, consulta la sezione Eliminare un cluster.

Impedisci l'eliminazione del cluster utilizzando le policy di negazione

Puoi utilizzare i criteri di negazione IAM per impedire l'eliminazione di determinati cluster critici, indipendentemente dall'entità che tenta l'eliminazione. Per scegliere come target cluster specifici in un criterio di negazione, aggiungi un tag a questi cluster. Poi, utilizzi una condizione di negazione per applicare la policy di negazione solo ai cluster che hanno quel tag.

Per proteggere un cluster specifico dall'eliminazione:

  1. Crea e definisci una chiave tag per identificare i cluster protetti. Ad esempio, puoi creare una chiave tag denominata do_not_delete.

  2. Collega la chiave del tag al cluster.

  3. Crea un criterio di rifiuto IAM selezionando una delle seguenti opzioni:

    Console

    1. Nella console Google Cloud , vai alla scheda Nega nella pagina IAM.

      Vai a IAM Deny

    2. Fai clic su Crea policy di negazione. Viene visualizzata la pagina Crea policy di negazione.

    3. Nel campo ID, specifica un ID univoco e immutabile per la tua policy di negazione.

    4. Nella sezione Nuova regola di negazione, segui questi passaggi:

      1. Nel campo Entità rifiutate, specifica principalSet://goog/public:all, che copre qualsiasi entità.

      2. Nella sezione Autorizzazioni negate, nell'elenco a discesa Autorizzazione 1, trova e seleziona l'autorizzazione container.googleapis.com/clusters.delete.

      3. Fai clic su Aggiungi condizione di rifiuto. Viene visualizzato il riquadro Aggiungi condizione di negazione.

      4. Specifica un titolo informativo per la condizione, ad esempio Cluster has the do_not_delete tag.

      5. Nella scheda Generatore di condizioni, seleziona Tag dall'elenco a discesa Tipo di condizione 1.

      6. Nell'elenco a discesa Operatore, seleziona Ha chiave.

      7. Nell'elenco a discesa Percorso chiave, seleziona la chiave tag che hai applicato al cluster, ad esempio do_not_delete.

      8. Fai clic su Salva.

    5. Fai clic su Crea.

    gcloud

    1. Crea un file JSON contenente il seguente criterio di negazione:

      {
        "displayName": "Prevent cluster deletion based on tag",
        "rules": [
          {
            "description": "Prevent cluster deletion based on tag",
            "deniedPrincipals": [
              "principalSet://goog/public:all"
            ],
            "deniedPermissions": [
              "container.googleapis.com/clusters.delete"
            ],
            "denialCondition": {
              "title": "Cluster has the do_not_delete tag",
              "expression": "resource.hasTagKey('TAG_KEY_NAME')
            }
          }
        ]
      }
      

      Sostituisci TAG_KEY_NAME con il percorso della chiave tag che hai creato.

    2. Crea la policy di negazione utilizzando il comando gcloud iam policies create:

      gcloud iam policies create POLICY_ID \
          --attachment-point=ATTACHMENT_POINT \
          --kind=denypolicies --policy-file=POLICY_FILE
      

      Sostituisci quanto segue:

      • POLICY_ID: un ID per la policy di negazione.
      • ATTACHMENT_POINT: l'organizzazione, la cartella o il progetto a cui collegare la policy di negazione. Ad esempio, se colleghi il criterio di negazione a una cartella, il criterio si applica ai cluster in qualsiasi progetto della cartella. Per saperne di più, consulta Punto di attacco.
      • POLICY_FILE: il percorso del file JSON che hai creato nel passaggio precedente.

Dopo aver creato la policy di negazione, nessuno può eliminare un cluster con la chiave tag specificata nella condizione di negazione. Qualsiasi tentativo di eliminazione del cluster non va a buon fine e viene visualizzato un messaggio di errore Permission denied. Per consentire l'eliminazione del cluster, devi scollegare la chiave del tag dal cluster.

Aggiungere cluster a un parco risorse

Se la tua organizzazione utilizza più cluster, puoi semplificare la gestione multi-cluster aggiungendo i cluster a un parco risorse: un raggruppamento logico di cluster Kubernetes. La creazione di un parco risorse aiuta la tua organizzazione a migliorare il livello di gestione da singoli cluster a interi gruppi di cluster e ti consente di utilizzare funzionalità abilitate per il parco risorse come Ingress multi-cluster, Config Sync e Policy Controller.

Puoi aggiungere cluster GKE a un parco risorse utilizzando la consoleGoogle Cloud , gcloud CLI o in modo dichiarativo utilizzando Terraform o Config Connector.

Puoi scoprire di più sul funzionamento dei parchi risorse in Gestione del parco risorse e sulla creazione di parchi risorse in Creare parchi risorse per semplificare la gestione multi-cluster.

Passaggi successivi