Creare cluster e pool di nodi standard con nodi Arm


Questa pagina spiega come creare un cluster o un pool di nodi GKE Standard con nodi Arm, in modo da poter eseguire i workload Arm su Google Kubernetes Engine (GKE). Per scoprire come eseguire il deployment dei carichi di lavoro Arm sui cluster Autopilot, consulta Eseguire il deployment dei carichi di lavoro Autopilot sull'architettura Arm.

Puoi creare cluster con nodi Arm utilizzando la serie di macchine C4A o la serie di macchine Tau T2A. Per scoprire di più sui vantaggi di Arm e scegliere la serie di macchine migliore per i tuoi carichi di lavoro, consulta VM Arm su Compute.

Con GKE puoi creare un cluster con pool di nodi con un tipo di architettura (ad esempio Arm) o più tipi di architettura (ad esempio Arm e x86). Quando esegui nodi con più tipi di architettura, puoi eseguire il deployment dei carichi di lavoro su più architetture nello stesso cluster.

Per scoprire di più sull'utilizzo dei nodi Arm con i cluster GKE, consulta Workload Arm su GKE.

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.

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

  1. Vai alla pagina Welcome (Ti diamo il 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 accesso.
  5. Nel campo Nuove entità, specifica il seguente valore:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Sostituisci PROJECT_NUMBER con il numero del progetto che hai copiato.
  6. Nel menu Seleziona un ruolo, seleziona il ruolo Account di servizio del nodo predefinito 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 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 con un pool di nodi Arm

Le istruzioni riportate di seguito spiegano come creare un nuovo cluster con un pool di nodi che esegue nodi Arm della serie di macchine C4A o della serie di macchine Tau T2A.

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

gcloud

Crea un nuovo cluster di zona con il pool di nodi predefinito utilizzando i nodi Arm:

gcloud container clusters create CLUSTER_NAME \
    --zone ZONE  \
    --node-locations NODE_LOCATIONS \
    --machine-type ARM_MACHINE_TYPE \
    --num-nodes NUM_NODES

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del nuovo cluster con un pool di nodi Arm.
  • ZONE: la zona del cluster, ad esempio us-central1-a. La zona deve essere una delle zone disponibili per la serie di macchine Arm che scegli. Per creare un cluster a livello di area geografica, utilizza il flag --region=REGION. La regione deve essere una delle regioni disponibili per la serie di macchine Arm che scegli.
  • NODE_LOCATIONS: le zone per il tuo pool di nodi, ad esempio us-central1-a. Devi scegliere una delle zone disponibili per la serie di macchine Arm, altrimenti la creazione del pool di nodi potrebbe non riuscire.
  • ARM_MACHINE_TYPE: una delle forme delle macchine C4A o delle forme delle macchine T2A disponibili, come c4a-standard-8 o t2a-standard-16.
  • NUM_NODES: il numero di nodi per il pool di nodi Arm.

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.

Se vuoi impostare impostazioni aggiuntive per il cluster, consulta la documentazione di riferimento di gcloud container clusters create per un elenco completo delle impostazioni disponibili durante la creazione del cluster.

Console

  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. Per ulteriori informazioni, consulta le istruzioni per la creazione di un cluster zonale o la creazione di un cluster regionale.

  4. Scegli una località in cui sono disponibili i nodi Arm.

    1. Nella sezione Nozioni di base sul cluster, in Tipo di località, scegli A livello di zona o A livello di regione:
    2. Nel menu a discesa, scegli una zona o una regione in cui sono disponibili i nodi Arm.
    3. Seleziona la casella per specificare le località dei nodi predefinite. Seleziona le zone in cui sono disponibili i nodi Arm.
  5. Per selezionare un tipo di macchina Arm, nella sottosezione Nodi, in Configura impostazioni nodi > Configurazione macchina > Famiglia di macchine, seleziona GENERAL-PURPOSE. Nel menu a discesa Serie, seleziona C4A o T2A. Nel menu a discesa Tipo di macchina, scegli una delle opzioni disponibili.

  6. Se vuoi, specifica un account di servizio IAM personalizzato per i tuoi nodi:
    1. Nella pagina Impostazioni avanzate, espandi la sezione Sicurezza.
    2. 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.

  7. Fai clic su Crea.

Terraform

Per creare un cluster zonale con il pool di nodi predefinito utilizzando i nodi Arm con Terraform, fai riferimento al seguente esempio:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-arm-cluster"
  location           = "us-central1-a"
  node_locations     = ["us-central1-b", "us-central1-f"]
  initial_node_count = 2

  node_config {
    machine_type    = "t2a-standard-1"
    service_account = google_service_account.default.email
  }

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

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

Aggiungere un pool di nodi Arm a un cluster GKE

Puoi aggiungere un nuovo pool di nodi a un cluster GKE Standard utilizzando gcloud CLI, la console Google Cloud o Terraform.

Come best practice per la creazione di un cluster GKE che utilizza qualsiasi tipo di nodi, ti consigliamo di creare e utilizzare un account di servizio IAM (Identity and Access Management) con privilegi minimi per i tuoi pool di nodi da utilizzare al posto del account di servizio predefinito di Compute Engine. Per istruzioni su come creare un account di servizio con privilegi minimi, consulta Rafforzare la sicurezza del cluster.

gcloud

Aggiungi un pool di nodi Arm a un cluster esistente:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone ZONE \
    --node-locations NODE_LOCATIONS \
    --machine-type ARM_MACHINE_TYPE \
    --num-nodes NUM_NODES \
    --service-account SERVICE_ACCOUNT

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del nuovo pool di nodi Arm per il tuo cluster esistente.
  • ZONE: la zona del cluster esistente. Per un cluster regionale, utilizza il flag --region=REGION con la regione del cluster.
  • CLUSTER_NAME: il nome del cluster in cui vuoi aggiungere un pool di nodi Arm.
  • NODE_LOCATIONS: le zone per il tuo pool di nodi, ad esempio us-central1-a. Devi scegliere una delle zone disponibili per la serie di macchine Arm, altrimenti la creazione del pool di nodi potrebbe non riuscire.
  • ARM_MACHINE_TYPE: una delle forme delle macchine C4A o delle forme delle macchine T2A disponibili, come c4a-standard-8 o t2a-standard-16.
  • NUM_NODES: il numero di nodi per il pool di nodi Arm.

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.

Se vuoi impostare impostazioni aggiuntive per il pool di nodi, consulta la documentazione di riferimento di gcloud container node-pools create per un elenco completo delle impostazioni disponibili durante la creazione del pool di nodi.

Console

Per aggiungere un pool di nodi Arm a un cluster esistente, svolgi i seguenti 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 da modificare.

  3. Fai clic su Aggiungi pool di nodi.

  4. Configura il pool di nodi.

  5. Scegli le località dei nodi in cui sono disponibili nodi Arm.

    1. Nella sezione Dettagli del pool di nodi, seleziona la casella Specifica le località dei nodi.
    2. Seleziona le zone in cui sono disponibili i nodi Arm.
  6. Per selezionare un tipo di macchina Arm, nella sottosezione Nodi, in Configura impostazioni nodi > Configurazione macchina > Famiglia di macchine, seleziona GENERAL-PURPOSE. Nel menu a discesa Serie, seleziona C4A o T2A. Nel menu a discesa Tipo di macchina, scegli una delle opzioni disponibili.

  7. Nel menu di navigazione, fai clic su Sicurezza.

  8. Se vuoi, specifica un account di servizio IAM personalizzato per i tuoi nodi:
    1. Nella pagina Impostazioni avanzate, espandi la sezione Sicurezza.
    2. 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.

  9. Fai clic su Crea per aggiungere il pool di nodi.

Terraform

Per aggiungere un pool di nodi che utilizza nodi Arm a un cluster esistente utilizzando Terraform, consulta il seguente esempio:

resource "google_container_node_pool" "default" {
  name           = "gke-standard-zonal-arm-node-pool"
  cluster        = google_container_cluster.default.id
  node_locations = ["us-central1-a"]
  node_count     = 1

  node_config {
    machine_type = "t2a-standard-1"

    service_account = google_service_account.default.email
  }
}

Sostituisci google_container_cluster.default.id con il nome del cluster.

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

Passaggi successivi