Questo documento mostra come creare un cluster regionale standard per aumentare la disponibilità del piano di controllo e dei carichi di lavoro del cluster durante gli upgrade del cluster, la manutenzione automatica o un'interruzione zonale.
I cluster GKE Autopilot sono sempre regionali.
Panoramica
Quando crei un cluster a livello di regione anziché un cluster zonale, il piano di controllo del cluster viene replicato in più zone di una data regione. Per i pool di nodi in un cluster a livello di regione, puoi specificare manualmente le zone in cui eseguire i pool di nodi oppure utilizzare la configurazione predefinita, che replica ogni pool di nodi in tre zone della regione del piano di controllo. Tutte le zone devono trovarsi nella stessa regione del control plane del cluster.
I cluster a livello di area geografica replicano le risorse in più zone e consumano quote aggiuntive.
Per informazioni sui diversi tipi di disponibilità del cluster, consulta Informazioni sulle scelte di configurazione del cluster.
Le istruzioni riportate nelle sezioni seguenti spiegano come:
- Crea un cluster a livello di area geografica con un pool di nodi a zona singola.
- Crea un cluster a livello di area geografica con un pool di nodi multi-zona.
Una volta creato un cluster a livello di regione, non puoi convertirlo in un cluster a livello di zona.
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 posizione 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à,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
- Assicurati di disporre delle autorizzazioni corrette per creare cluster. Come minimo, devi avere il ruolo Amministratore cluster Kubernetes Engine.
- Se vuoi registrare il nuovo cluster in un parco risorse, assicurati di disporre delle API e delle autorizzazioni necessarie.
Configurare gli account di servizio IAM per GKE
GKE utilizza service account IAM collegati ai tuoi nodi per eseguire attività di sistema come il logging e il monitoraggio. Come minimo, questi account di servizio dei nodi devono avere il ruolo Account di servizio dei nodi predefinito di Kubernetes Engine (roles/container.defaultNodeServiceAccount
) nel progetto. Per impostazione predefinita, GKE utilizza l'account di servizio predefinito di Compute Engine, creato automaticamente nel progetto, come account di servizio del nodo.
Per concedere il ruolo roles/container.defaultNodeServiceAccount
all'account di servizio predefinito di Compute Engine, completa i seguenti passaggi:
console
- Vai alla pagina Welcome (Ti diamo il benvenuto):
- Nel campo Numero progetto, fai clic su Copia negli appunti.
- Vai alla pagina IAM:
- Fai clic su Concedi accesso.
- Nel campo Nuove entità, specifica il seguente valore:
SostituisciPROJECT_NUMBER-compute@developer.gserviceaccount.com
PROJECT_NUMBER
con il numero del progetto che hai copiato. - Nel menu Seleziona un ruolo, seleziona il ruolo Account di servizio del nodo predefinito Kubernetes Engine.
- Fai clic su Salva.
gcloud
- 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
- Concedi il ruolo
roles/container.defaultNodeServiceAccount
all'account di servizio predefinito 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 del progetto del passaggio precedente.
Creare un cluster a livello di area geografica con un pool di nodi a zona singola
Le istruzioni riportate di seguito illustrano come creare un cluster regionale con un pool di nodi che opera in una singola zona all'interno della regione. Il piano di controllo del cluster viene replicato in più zone della regione specificata, ma i nodi si trovano nella singola zona e non vengono replicati in altre zone.
Puoi utilizzare gcloud CLI, la console Google Cloud o Terraform per creare il cluster.
Se stai sviluppando 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 tra i seguenti comandi e sostituisci le seguenti variabili:
CLUSTER_NAME
: il nome del nuovo cluster regionale.COMPUTE_REGION
: la regione per il tuo cluster, ad esempious-central1
.COMPUTE_ZONE
: la zona per il pool di nodi, ad esempious-central1-a
. La zona deve trovarsi nella stessa regione del piano di controllo del cluster.CHANNEL
: il tipo di canale di rilascio, che può essererapid
,regular
,stable
oNone
. Per impostazione predefinita, il cluster è registrato nel canale di rilascioregular
, 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 da specificare per il cluster.
Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i tuoi nodi possano utilizzare al posto dell'account di servizio predefinito di Compute Engine. Per imparare a creare un account di servizio con privilegi minimi, consulta Utilizzare un account di servizio con privilegio minimo minimi.
Per specificare un account di servizio personalizzato in gcloud CLI, aggiungi il seguente flag al comando:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Sostituisci SERVICE_ACCOUNT_NAME con il nome del tuo account di servizio con privilegi minimi.
Utilizzando un canale di rilascio specifico:
Per creare un nuovo cluster utilizzando un canale di release specifico, esegui il seguente comando:
gcloud container clusters create CLUSTER_NAME \
--region COMPUTE_REGION \
--node-locations COMPUTE_ZONE \
--release-channel CHANNEL
Utilizzo di una versione specifica:
Per creare un nuovo cluster utilizzando una versione specifica, esegui il seguente comando:
gcloud container clusters create CLUSTER_NAME \
--region COMPUTE_REGION \
--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 è necessario specificare una versione del cluster, ma è necessario impostare il canale di rilascio su None
:
gcloud container clusters create CLUSTER_NAME \
--region COMPUTE_REGION \
--node-locations COMPUTE_ZONE \
--release-channel None
Esempio
Il seguente comando 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 \
--region 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 \
--region us-west1 \
--node-locations us-west1-c \
--num-nodes 2
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Nella sezione Nozioni di base sul cluster, completa quanto segue:
- Inserisci il nome del cluster.
- Per Tipo di località, seleziona Regionale e poi la regione per il tuo cluster.
- Se vuoi sostituire le località dei nodi predefinite (ad esempio per eseguire l'operazione in una singola zona), seleziona la casella di controllo Specifica località dei nodi predefinite e poi scegli le zone in cui vuoi eseguire i node pool.
Scegli un canale di rilascio. Se vuoi, puoi selezionare Nessun canale dall'elenco a discesa, ma 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 in un canale di rilascio con le versioni del canale stabile.
(Facoltativo) Specifica una versione del piano di controllo dall'elenco a discesa Versione.
(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 Google Cloud per creare e registrare un nuovo cluster per completare la registrazione del cluster.
Nel riquadro di navigazione, in Pool di nodi, fai clic su default-pool.
Nella sezione Dettagli del pool di nodi, completa quanto segue:
- Inserisci un nome per il pool di nodi predefinito.
- (Facoltativo) Scegli la versione del nodo.
- Inserisci il numero di nodi da creare nel cluster. Devi avere una quota di risorse disponibile per i nodi e le relative risorse (ad esempio le route del firewall).
- (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.
Nel riquadro di navigazione, in Pool di nodi, fai clic su Nodi.
Nell'elenco a discesa Tipo di immagine, seleziona l'immagine del nodo.
Scegli la configurazione della 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 dei prezzi dei tipi di macchine.Nell'elenco a discesa Tipo di disco di avvio, seleziona il tipo di disco.
Inserisci la dimensione del disco di avvio.
(Facoltativo) Nel riquadro di navigazione, fai clic su Sicurezza in Pool di nodi.
- Se vuoi, specifica un account di servizio IAM personalizzato per i tuoi nodi:
- Nella pagina Impostazioni avanzate, espandi la sezione Sicurezza.
- Nel menu Account di servizio, seleziona l'account di servizio che preferisci.
Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i tuoi nodi possano utilizzare al posto dell'account di servizio predefinito di Compute Engine. Per imparare a creare un account di servizio con privilegi minimi, consulta Utilizzare un account di servizio con privilegio minimo minimi.
Fai clic su Crea.
Terraform
Per creare un cluster regionale con un pool di nodi a zona singola utilizzando Terraform, consulta il seguente esempio:
Per scoprire di più sull'utilizzo di Terraform, consulta Assistenza 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.
Creare un cluster a livello di area geografica con un pool di nodi multizona
Le istruzioni riportate di seguito mostrano come creare un cluster regionale con un pool di nodi multizona, che è la configurazione predefinita. Il piano di controllo 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 stai sviluppando applicazioni GKE con Visual Studio Code, prova a creare cluster con Cloud Code.
gcloud
Per creare un cluster regionale con gcloud CLI, utilizza uno tra i seguenti comandi e sostituisci le seguenti variabili:
CLUSTER_NAME
: il nome del nuovo cluster regionale.COMPUTE_REGION
: la regione per il tuo cluster, ad esempious-central1
.CHANNEL
: il tipo di canale di rilascio, che può essererapid
,regular
,stable
oNone
. Per impostazione predefinita, il cluster è registrato nel canale di rilascioregular
se non sono specificati i seguenti flag:--cluster-version
,--release-channel
,--no-enable-autoupgrade
e--no-enable-autorepair
.VERSION
: la versione da specificare per il cluster.- Per le regioni con più di tre zone o nei casi in cui si preferisca un numero inferiore di zone, puoi utilizzare il flag facoltativo
--node-locations
per sostituire le zone predefinite in cui vengono replicati i nodi.
Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i tuoi nodi possano utilizzare al posto dell'account di servizio predefinito di Compute Engine. Per imparare a creare un account di servizio con privilegi minimi, consulta Utilizzare un account di servizio con privilegio minimo minimi.
Per specificare un account di servizio personalizzato in gcloud CLI, aggiungi il seguente flag al comando:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Sostituisci SERVICE_ACCOUNT_NAME con il nome del tuo account di servizio con privilegi minimi.
Utilizzando un canale di rilascio specifico:
Per creare un nuovo cluster utilizzando un canale di release specifico, esegui il seguente comando:
gcloud container clusters create CLUSTER_NAME \
--region COMPUTE_REGION \
--release-channel CHANNEL
Utilizzo di una versione specifica:
Per creare un nuovo cluster utilizzando una versione specifica, esegui il seguente comando:
gcloud container clusters create CLUSTER_NAME \
--region COMPUTE_REGION \
--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 è necessario specificare una versione del cluster, ma è necessario impostare il canale di rilascio su None
:
gcloud container clusters create CLUSTER_NAME \
--region COMPUTE_REGION \
--release-channel None
Esempio
Il seguente comando 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 --region us-west1
Esempio
Il seguente comando crea un cluster a livello di regione 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 \
--region us-west1 \
--num-nodes 2
Esempio
Il seguente comando 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 \
--region us-central1 \
--node-locations us-central1-b,us-central1-c
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Nella sezione Nozioni di base sul cluster, completa quanto segue:
- Inserisci il nome del cluster.
- Per Tipo di località, seleziona Regionale e poi la regione per il tuo cluster.
- Se vuoi sostituire le località dei nodi predefinite (ad esempio per eseguire l'operazione in una singola zona), seleziona la casella di controllo Specifica località dei nodi predefinite e poi scegli le zone in cui vuoi eseguire i pool di nodi.
Scegli un canale di rilascio. Se vuoi, puoi selezionare Nessun canale dall'elenco a discesa, ma 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 in un canale di rilascio con le versioni del canale stabile.
(Facoltativo) Specifica una versione del piano di controllo dall'elenco a discesa Versione.
(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 Google Cloud per creare e registrare un nuovo cluster per completare la registrazione del cluster.
Nel riquadro di navigazione, in Pool di nodi, fai clic su default-pool.
Nella sezione Dettagli del pool di nodi, completa quanto segue:
- Inserisci un nome per il pool di nodi predefinito.
- (Facoltativo) Scegli la versione del nodo.
- Inserisci il numero di nodi da creare nel cluster. Devi avere una quota di risorse disponibile per i nodi e le relative risorse (ad esempio le route del firewall).
- (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.
Nel riquadro di navigazione, in Pool di nodi, fai clic su Nodi.
Nell'elenco a discesa Tipo di immagine, seleziona l'immagine del nodo.
Scegli la configurazione della 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 dei prezzi dei tipi di macchine.Nell'elenco a discesa Tipo di disco di avvio, seleziona il tipo di disco.
Inserisci la dimensione del disco di avvio.
(Facoltativo) Nel riquadro di navigazione, fai clic su Sicurezza in Pool di nodi.
- Se vuoi, specifica un account di servizio IAM personalizzato per i tuoi nodi:
- Nella pagina Impostazioni avanzate, espandi la sezione Sicurezza.
- Nel menu Account di servizio, seleziona l'account di servizio che preferisci.
Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i tuoi nodi possano utilizzare al posto dell'account di servizio predefinito di Compute Engine. Per imparare a creare un account di servizio con privilegi minimi, consulta Utilizzare un account di servizio con privilegio minimo minimi.
Fai clic su Crea.
Terraform
Per creare un cluster a livello di area geografica con un pool di nodi multizonale utilizzando Terraform, consulta il seguente esempio:
Per scoprire di più sull'utilizzo di Terraform, consulta Assistenza 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
- Scopri di più sui tipi di cluster che puoi creare.
- Crea un cluster di zona.