Gestisci i cluster

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

Prima di iniziare

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

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google 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 gcloud components update comando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.

Visualizza i cluster

gcloud

  • Per visualizzare un cluster specifico, esegui il comando seguente:

    gcloud container clusters describe CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster.
    • CONTROL_PLANE_LOCATION: la località di Compute Engine del piano di controllo 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 il comando seguente:

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

    gcloud container clusters list \
        --location=CONTROL_PLANE_LOCATION
    

Console

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

Vai a Google Kubernetes Engine

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

Imposta un cluster predefinito per kubectl

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

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

Imposta un cluster predefinito per gcloud

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

gcloud config set container/cluster CLUSTER_NAME

Sostituisci CLUSTER_NAME con il nome del 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 manualmente l'upgrade di un cluster.

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

Aggiungi o rimuovi zone in un cluster Standard

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

Modifica 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 gcloud container clusters update comando:

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

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome scelto per il cluster.
  • CONTROL_PLANE_LOCATION: la zona di Compute Engine del piano di controllo del cluster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: le zone in cui vengono creati i nodi. Puoi specificare tutte le zone necessarie per il 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 il comando seguente:

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 viene eseguito in 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 il comando seguente:

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 Google Cloud console.

    Vai a Google Kubernetes Engine

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

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

  4. Seleziona le zone desiderate e salva le modifiche.

Modifica 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:

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

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 viene eseguito in 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 il comando seguente:

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

Ridimensiona 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 i nodi a zero. Per saperne di più sul ridimensionamento, consulta Ridimensionare 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). Il gestore della 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 Eliminare un cluster.

Impedisci l'eliminazione dei cluster utilizzando le policy di negazione

Puoi utilizzare le policy 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 una policy di negazione, aggiungi un tag a questi cluster. Poi, utilizza una condizione di negazione per applicare la policy di negazione solo ai cluster che hanno quel tag.

Per proteggere un cluster specifico dall'eliminazione, segui questi passaggi:

  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 tag al cluster.

  3. Crea una policy di negazione IAM selezionando una delle seguenti opzioni:

    Console

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

      Vai a Negazione IAM

    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 policy di negazione.

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

      1. Nel campo Entità negate, 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 negazione. Viene visualizzato il riquadro Aggiungi condizione di negazione.

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

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

      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 la seguente policy 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 gcloud iam policies create comando:

      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 la policy di negazione a una cartella, la policy si applica ai cluster di qualsiasi progetto in quella cartella. Per saperne di più, consulta Punto di collegamento.
      • 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 eliminare il cluster non riesce e viene visualizzato il messaggio di errore Permission denied. Per consentire l'eliminazione del cluster, devi scollegare la chiave tag dal cluster.

Aggiungi 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 la gestione dai 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 Google Cloud console, gcloud CLI o in modo dichiarativo utilizzando Terraform o Config Connector.

Puoi scoprire di più su come funzionano i parchi risorse in Gestione dei parchi risorse e su come creare parchi risorse in Creare parchi risorse per semplificare la gestione multi-cluster.

Passaggi successivi