Creazione di un cluster a livello di area geografica


Questo documento mostra come creare un cluster regionale Standard per aumentare la disponibilità del piano di controllo e dei workload del cluster durante gli upgrade del cluster, la manutenzione automatica o un'interruzione a livello di zona.

I cluster GKE Autopilot sono sempre regionali.

Panoramica

Quando crei un cluster regionale anziché un cluster zonale, il control plane del cluster viene replicato in più zone di una determinata regione. Per i node pool in un cluster regionale, puoi specificare manualmente le zone in cui eseguire i node pool oppure puoi utilizzare la configurazione predefinita, che replica ogni pool di nodi in tre zone della regione del control plane. Tutte le zone devono trovarsi nella stessa regione del control plane del cluster.

I cluster regionali replicano le risorse in più zone e utilizzano quote aggiuntive.

Per scoprire di più sui diversi tipi di disponibilità dei cluster, consulta Informazioni sulle scelte di configurazione dei cluster.

Le istruzioni nelle sezioni seguenti mostrano come:

Dopo aver creato un cluster regionale, non puoi convertirlo in un cluster zonale.

Le informazioni minime che devi specificare quando crei un nuovo cluster regionale sono un nome, un progetto (di solito quello corrente) e una regione (di solito la località predefinita per gli strumenti a riga di comando), utilizzando le impostazioni predefinite per tutti gli altri valori. Tuttavia, esistono altre impostazioni di configurazione possibili, solo alcune delle quali sono descritte in questa guida e alcune delle quali non possono essere modificate dopo la creazione del cluster. Assicurati di comprendere quali impostazioni non possono essere modificate dopo la creazione del cluster e di scegliere l'impostazione corretta quando crei un cluster se non vuoi doverlo creare di nuovo.

Puoi visualizzare una panoramica delle opzioni di configurazione del cluster in Informazioni sulle scelte di configurazione del cluster e un elenco completo delle possibili opzioni nelle guide di riferimento di gcloud container clusters create e Terraform google_container_cluster.

Prima di iniziare

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

  • Attiva l'API Google Kubernetes Engine.
  • Attiva 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 gcloud components update.

Configura i service account IAM per GKE

GKE utilizza i service account IAM collegati ai nodi per eseguire attività di sistema come il logging e il monitoraggio. Come minimo, questi service account nodo devono avere il ruolo Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) sul tuo progetto. Per impostazione predefinita, GKE utilizza l'account di servizio predefinito di Compute Engine, che viene creato automaticamente nel tuo progetto, come service account del nodo.

Per concedere il ruolo roles/container.defaultNodeServiceAccount al account di servizio predefinito di Compute Engine, completa i seguenti passaggi:

console

  1. Vai alla pagina Benvenuto:

    Vai a Benvenuto

  2. Nel campo Numero progetto, fai clic su Copia negli appunti.
  3. Vai alla pagina IAM:

    Vai a IAM

  4. Fai clic su Concedi l'accesso.
  5. Nel campo Nuove entità, specifica il seguente valore:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Sostituisci PROJECT_NUMBER con il numero di progetto che hai copiato.
  6. Nel menu Seleziona un ruolo, seleziona il ruolo Service account predefinito del nodo Kubernetes Engine.
  7. Fai clic su Salva.

gcloud

  1. Trova il numero del tuo progetto Google Cloud :
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    Sostituisci PROJECT_ID con l'ID progetto.

    L'output è simile al seguente:

    12345678901
    
  2. Concedi il ruolo roles/container.defaultNodeServiceAccount all'account di servizio predefinito di Compute Engine:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    Sostituisci PROJECT_NUMBER con il numero di progetto del passaggio precedente.

Crea un cluster regionale con un pool di nodi di una sola zona

Le seguenti istruzioni mostrano come creare un cluster regionale con un pool di nodi che opera in una singola zona all'interno della regione. Il control plane del cluster viene replicato in più zone della regione specificata, ma i nodi si trovano in una singola zona e non vengono replicati in altre zone.

Puoi utilizzare gcloud CLI, la console Google Cloud o Terraform per creare il cluster.

Se sviluppi applicazioni GKE con Cloud Code per VS Code, prova a creare cluster con Cloud Code.

gcloud

Per creare un cluster regionale con gcloud CLI, utilizza uno dei seguenti comandi e sostituisci le seguenti variabili:

  • CLUSTER_NAME: il nome del nuovo cluster regionale.
  • CONTROL_PLANE_LOCATION: la regione di Compute Engine del control plane del cluster. Fornisci una regione, ad esempio us-central1.
  • COMPUTE_ZONE: la zona del pool di nodi, ad esempio us-central1-a. La zona deve trovarsi nella stessa regione del control plane del cluster.
  • CHANNEL: il tipo di canale di rilascio, che può essere rapid, regular, stable o None. Per impostazione predefinita, il cluster è registrato nel canale di rilascio regular, a meno che non sia specificato almeno uno dei seguenti flag: --cluster-version, --release-channel, --no-enable-autoupgrade e --no-enable-autorepair.
  • VERSION: la versione che vuoi specificare per il tuo cluster.

Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i nodi possono utilizzare al posto delaccount di serviziot predefinito di Compute Engine. Per scoprire come creare un account di servizio con privilegi minimi, vedi Utilizzare un service account con privilegio minimo minimi.

Per specificare un account di servizio personalizzato in gcloud CLI, aggiungi il seguente flag al tuo comando:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Sostituisci SERVICE_ACCOUNT_NAME con il nome del service account con privilegi minimi.

Utilizzo di un canale di rilascio specifico:

Per creare un nuovo cluster utilizzando un canale di rilascio specifico, esegui il seguente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE \
    --release-channel CHANNEL

Utilizzo di una versione specifica:

Per creare un nuovo cluster utilizzando una versione specifica del cluster, esegui il seguente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE \
    --cluster-version VERSION

Utilizzo della versione predefinita per i cluster non registrati in un canale di rilascio:

Per creare un nuovo cluster utilizzando la versione predefinita per i cluster non registrati in un canale di rilascio, non devi specificare una versione del cluster, ma devi impostare il canale di rilascio su None:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE \
    --release-channel None

Esempio

Il comando seguente crea un cluster regionale registrato nel canale di rilascio regular (predefinito), con tre nodi (predefiniti) nella zona us-west1-c:

gcloud container clusters create my-regional-cluster \
    --location us-west1 \
    --node-locations us-west1-c

Esempio

Il comando seguente crea un cluster regionale registrato nel canale di rilascio regular (predefinito), con due nodi situati nella zona us-west1-c:

gcloud container clusters create my-regional-cluster \
    --location us-west1 \
    --node-locations us-west1-c \
    --num-nodes 2

Console

  1. Nella console Google Cloud , vai alla pagina Crea un cluster Kubernetes.

    Vai a Crea un cluster Kubernetes

  2. Nella sezione Impostazioni di base del cluster, completa quanto segue:

    1. Inserisci il nome del cluster.
    2. Per Tipo di località, seleziona Regionale, quindi seleziona la regione per il tuo cluster.
    3. Se vuoi ignorare le località dei nodi predefinite (ad esempio, per l'esecuzione in una singola zona), seleziona la casella di controllo Specifica località dei nodi predefinite e poi scegli le zone in cui vuoi che vengano eseguiti i node pool.

    4. Scegli un canale di rilascio. Se vuoi, puoi selezionare Nessun canale dall'elenco a discesa, tuttavia ti consigliamo di esaminare il confronto tra i cluster registrati e non registrati a un canale di rilascio prima di scegliere questa opzione. GKE esegue automaticamente l'upgrade dei cluster non presenti in un canale di rilascio con versioni del canale stabile.

    5. (Facoltativo) Specifica una versione del control plane dall'elenco a discesa Versione.

  3. (Facoltativo) Configura altre impostazioni per il nuovo cluster.

  4. (Facoltativo, disponibile con GKE Enterprise) Se vuoi registrare il nuovo cluster in un parco risorse, vai alla sezione Registrazione del parco risorse e segui le istruzioni della console per creare e registrare un nuovo cluster per completare la registrazione del cluster. Google Cloud

  5. Nel riquadro di navigazione, in Pool di nodi, fai clic su default-pool.

  6. Nella sezione Dettagli del pool di nodi, completa quanto segue:

    1. Inserisci un nome per il pool di nodi predefinito.
    2. (Facoltativo) Scegli la versione del nodo.
    3. Inserisci il numero di nodi da creare nel cluster. Devi disporre di una quota di risorse disponibile per i nodi e le relative risorse (ad esempio le route firewall).
    4. (Facoltativo) Puoi scegliere di disattivare gli upgrade automatici dei nodi, ma ti consigliamo di esaminare le considerazioni prima di disattivare gli upgrade automatici dei nodi prima di scegliere questa opzione.
  7. Nel riquadro di navigazione, in Pool di nodi, fai clic su Nodi.

  8. Dall'elenco a discesa Tipo di immagine, seleziona l'immagine del nodo.

  9. Scegli la configurazione macchina predefinita da utilizzare per le istanze. Ogni tipo di macchina viene fatturato in modo diverso. Il tipo di macchina predefinito è e2-medium. Per informazioni sui prezzi dei tipo di macchina, consulta il listino prezzi dei tipi di macchine.

  10. Dall'elenco a discesa Tipo di disco di avvio, seleziona il tipo di disco.

  11. Inserisci la Dimensione del disco di avvio.

  12. (Facoltativo) Nel riquadro di navigazione, in Pool di nodi, fai clic su Sicurezza.

  13. (Facoltativo) Specifica un account di servizio IAM personalizzato per i tuoi nodi:
    1. Nella pagina Impostazioni avanzate, espandi la sezione Sicurezza.
    2. Nel menu Service account, seleziona il account di servizio che preferisci.

    Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i nodi possono utilizzare al posto delaccount di serviziot predefinito di Compute Engine. Per scoprire come creare un account di servizio con privilegi minimi, vedi Utilizzare un service account con privilegio minimo minimi.

  14. Fai clic su Crea.

Terraform

Per creare un cluster regionale con un pool di nodi a zona singola utilizzando Terraform, fai riferimento al seguente esempio:

resource "google_container_cluster" "default" {
  name               = "gke-standard-regional-single-zone"
  location           = "us-west1"
  node_locations     = ["us-west1-c"]
  initial_node_count = 2
}

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

Interagire con un cluster utilizzando kubectl

Dopo aver creato un cluster, devi configurare kubectl prima di poter interagire con il cluster dalla riga di comando.

Crea un cluster regionale con un pool di nodi multizona

Le istruzioni riportate di seguito mostrano come creare un cluster regionale con un pool di nodi multizona, ovvero la configurazione predefinita. Il control plane e i nodi del cluster vengono replicati in più zone della regione specificata.

Puoi utilizzare gcloud CLI, la console Google Cloud o Terraform per creare il cluster.

Se sviluppi applicazioni GKE con Visual Studio Code, prova a creare cluster con Cloud Code.

gcloud

Per creare un cluster regionale con gcloud CLI, utilizza uno dei seguenti comandi e sostituisci le seguenti variabili:

  • CLUSTER_NAME: il nome del nuovo cluster regionale.
  • CONTROL_PLANE_LOCATION: la regione di Compute Engine del control plane del cluster. Fornisci una regione, ad esempio us-central1.
  • CHANNEL: il tipo di canale di rilascio, che può essere rapid, regular, stable o None. Per impostazione predefinita, il cluster è registrato nel canale di rilascio regular se non vengono specificati i seguenti flag: --cluster-version, --release-channel, --no-enable-autoupgrade e --no-enable-autorepair.
  • VERSION: la versione che vuoi specificare per il tuo cluster.
  • Per le regioni con più di tre zone o nei casi in cui sono preferibili meno zone, puoi utilizzare il flag facoltativo --node-locations per sostituire le zone predefinite in cui vengono replicate le repliche.

Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i nodi possono utilizzare al posto delaccount di serviziot predefinito di Compute Engine. Per scoprire come creare un account di servizio con privilegi minimi, vedi Utilizzare un service account con privilegio minimo minimi.

Per specificare un account di servizio personalizzato in gcloud CLI, aggiungi il seguente flag al tuo comando:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Sostituisci SERVICE_ACCOUNT_NAME con il nome del service account con privilegi minimi.

Utilizzo di un canale di rilascio specifico:

Per creare un nuovo cluster utilizzando un canale di rilascio specifico, esegui il seguente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --release-channel CHANNEL

Utilizzo di una versione specifica:

Per creare un nuovo cluster utilizzando una versione specifica del cluster, esegui il seguente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --cluster-version VERSION

Utilizzo della versione predefinita per i cluster non registrati in un canale di rilascio:

Per creare un nuovo cluster utilizzando la versione predefinita per i cluster non registrati in un canale di rilascio, non devi specificare una versione del cluster, ma devi impostare il canale di rilascio su None:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --release-channel None

Esempio

Il comando seguente crea un cluster regionale registrato nel canale di rilascio regular, con nove nodi in us-west1 (tre zone con tre nodi ciascuna, che è il valore predefinito):

gcloud container clusters create my-regional-cluster --location us-west1

Esempio

Il seguente comando crea un cluster regionale registrato nel canale di rilascio regular, con sei nodi (tre zone con due nodi ciascuna, specificate da --num-nodes):

gcloud container clusters create my-regional-cluster \
    --location us-west1 \
    --num-nodes 2

Esempio

Il comando seguente crea un cluster regionale registrato nel canale di rilascio regular, con sei nodi in due zone (due zone, specificate da --node-locations, con tre nodi ciascuna):

gcloud container clusters create my-regional-cluster \
    --location us-central1 \
    --node-locations us-central1-b,us-central1-c

Console

  1. Nella console Google Cloud , vai alla pagina Crea un cluster Kubernetes.

    Vai a Crea un cluster Kubernetes

  2. Nella sezione Impostazioni di base del cluster, completa quanto segue:

    1. Inserisci il nome del cluster.
    2. Per Tipo di località, seleziona Regionale, quindi seleziona la regione per il tuo cluster.
    3. Se vuoi ignorare le località dei nodi predefinite (ad esempio, per l'esecuzione in una singola zona), seleziona la casella di controllo Specifica località dei nodi predefinite e poi scegli le zone in cui vuoi che vengano eseguiti i node pool.

    4. Scegli un canale di rilascio. Se vuoi, puoi selezionare Nessun canale dall'elenco a discesa, tuttavia ti consigliamo di esaminare il confronto tra i cluster registrati e non registrati a un canale di rilascio prima di scegliere questa opzione. GKE esegue automaticamente l'upgrade dei cluster non presenti in un canale di rilascio con versioni del canale stabile.

    5. (Facoltativo) Specifica una versione del control plane dall'elenco a discesa Versione.

  3. (Facoltativo) Configura altre impostazioni per il nuovo cluster.

  4. (Facoltativo, disponibile con GKE Enterprise) Se vuoi registrare il nuovo cluster in un parco risorse, vai alla sezione Registrazione del parco risorse e segui le istruzioni della console per creare e registrare un nuovo cluster per completare la registrazione del cluster. Google Cloud

  5. Nel riquadro di navigazione, in Pool di nodi, fai clic su default-pool.

  6. Nella sezione Dettagli del pool di nodi, completa quanto segue:

    1. Inserisci un nome per il pool di nodi predefinito.
    2. (Facoltativo) Scegli la versione del nodo.
    3. Inserisci il numero di nodi da creare nel cluster. Devi disporre di una quota di risorse disponibile per i nodi e le relative risorse (ad esempio le route firewall).
    4. (Facoltativo) Puoi scegliere di disattivare gli upgrade automatici dei nodi, ma ti consigliamo di esaminare le considerazioni prima di disattivare gli upgrade automatici dei nodi prima di scegliere questa opzione.
  7. Nel riquadro di navigazione, in Pool di nodi, fai clic su Nodi.

  8. Dall'elenco a discesa Tipo di immagine, seleziona l'immagine del nodo.

  9. Scegli la configurazione macchina predefinita da utilizzare per le istanze. Ogni tipo di macchina viene fatturato in modo diverso. Il tipo di macchina predefinito è e2-medium. Per informazioni sui prezzi dei tipo di macchina, consulta il listino prezzi dei tipi di macchine.

  10. Dall'elenco a discesa Tipo di disco di avvio, seleziona il tipo di disco.

  11. Inserisci la Dimensione del disco di avvio.

  12. (Facoltativo) Nel riquadro di navigazione, in Pool di nodi, fai clic su Sicurezza.

  13. (Facoltativo) Specifica un account di servizio IAM personalizzato per i tuoi nodi:
    1. Nella pagina Impostazioni avanzate, espandi la sezione Sicurezza.
    2. Nel menu Service account, seleziona il account di servizio che preferisci.

    Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i nodi possono utilizzare al posto delaccount di serviziot predefinito di Compute Engine. Per scoprire come creare un account di servizio con privilegi minimi, vedi Utilizzare un service account con privilegio minimo minimi.

  14. Fai clic su Crea.

Terraform

Per creare un cluster regionale con un pool di nodi multizona utilizzando Terraform, fai riferimento al seguente esempio:

resource "google_container_cluster" "default" {
  name               = "gke-standard-regional-multi-zone"
  location           = "us-central1"
  node_locations     = ["us-central1-b", "us-central1-c"]
  initial_node_count = 2
}

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

Interagire con un cluster utilizzando kubectl

Dopo aver creato un cluster, devi configurare kubectl prima di poter interagire con il cluster dalla riga di comando.

Passaggi successivi