Crea cluster Standard e node pool con nodi Arm

Questo documento spiega come creare un cluster GKE Standard o un pool di nodi con nodi Arm in modo da poter eseguire i workload Arm su Google Kubernetes Engine (GKE). Per scoprire come eseguire il deployment dei workload Arm sui cluster Autopilot, vedi Eseguire il deployment dei workload Autopilot sull'arch itettura.

Puoi creare cluster con nodi Arm utilizzando le serie di macchine C4A, N4A o Tau T2A. Per scoprire di più sui vantaggi di Arm e scegliere la serie di macchine migliore per i tuoi workload, vedi 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 workload su architetture nello stesso cluster.

Questo documento è destinato agli operatori e agli sviluppatori che eseguono il provisioning e la configurazione delle risorse cloud e che eseguono il deployment dei workload. Per saperne di più sui ruoli comuni, vedi Ruoli e attività utente GKE comuni.

Prima di leggere questo documento, acquisisci familiarità con i workload Arm su GKE.

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.

Configurare 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 dei nodi devono avere il ruolo Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) nel tuo progetto. Per impostazione predefinita, GKE utilizza il service account predefinito di Compute Engine, creato automaticamente nel tuo progetto, come account di servizio dei nodi.

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 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 del progetto che hai copiato.
  6. Nel menu Seleziona un ruolo, seleziona il Kubernetes Engine Default Node Service Account ruolo.
  7. Fai clic su Salva.

gcloud

  1. Trova il tuo Google Cloud numero di progetto:
    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 al 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 del progetto dal passaggio precedente.

Creare un cluster con un pool di nodi Arm

Le seguenti istruzioni spiegano come creare un nuovo cluster con un pool di nodi che eseguono nodi Arm dalle serie di macchine C4A, N4A o Tau T2A.

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

gcloud

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

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

Sostituisci quanto segue:

Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i nodi possano utilizzare al posto del account di servizio 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.

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

Console

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

    Vai a Crea un cluster Kubernetes

  2. Configura il cluster. Per saperne di più, consulta le istruzioni per la creazione di un cluster zonale, o la creazione di un cluster regionale.

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

    1. Nella sezione Informazioni di base sul cluster, in Tipo di località, scegli Zonale o Regionale:
    2. Nel menu a discesa, scegli una zona o una regione in cui sono disponibili i nodi Arm.
    3. Seleziona la casella Specifica località dei nodi predefinite. Seleziona le zone in cui sono disponibili i nodi Arm.
  4. Per selezionare un tipo di macchina Arm, nella sottosezione Nodi, in Configura impostazioni dei nodi > Configurazione macchina > Famiglia di macchine , seleziona USO GENERICO. Nel menu a discesa Serie , seleziona C4A, N4A o T2A. Nel menu a discesa Tipo di macchina , scegli tra le opzioni disponibili.

  5. (Facoltativo) Specifica un account di servizio IAM personalizzato per i 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 possano utilizzare al posto del account di servizio predefinito di Compute Engine. Per scoprire come creare un account di servizio con privilegi minimi, vedi Utilizzare un service account con privilegio minimo minimi.

  6. Fai clic su Crea.

Terraform

Per creare un cluster zonale con il pool di nodi predefinito utilizzando i nodi Arm con Terraform, consulta il 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
  }
}

Per saperne di più sull'utilizzo di Terraform, vedi Supporto 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 Google Cloud console o Terraform.

Come best practice per la creazione di un cluster GKE utilizzando qualsiasi tipo di nodo, ti consigliamo di creare e utilizzare un account di servizio Identity and Access Management (IAM) con privilegi minimi per i pool di nodi da utilizzare al posto del account di servizio predefinito di Compute Engine.

Per istruzioni sulla creazione di un account di servizio con privilegi minimi, consulta Proteggere 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 \
    --location CONTROL_PLANE_LOCATION \
    --node-locations NODE_LOCATIONS \
    --machine-type ARM_MACHINE_TYPE \
    --num-nodes NUM_NODES \
    --service-account SERVICE_ACCOUNT

Sostituisci quanto segue:

Ti consigliamo vivamente di specificare un account di servizio IAM con privilegi minimi che i nodi possano utilizzare al posto del account di servizio 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.

Se vuoi impostare impostazioni aggiuntive per il pool di nodi, consulta il gcloud container node-pools create riferimento 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:

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

    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 i nodi Arm.

    1. Nella sezione Dettagli del pool di nodi, seleziona la casella Specifica 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 dei nodi > Configurazione macchina > Famiglia di macchine , seleziona USO GENERICO. Nel menu a discesa Serie , seleziona C4A, N4A o T2A. Nel menu a discesa Tipo di macchina, scegli tra le opzioni disponibili.

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

  8. (Facoltativo) Specifica un account di servizio IAM personalizzato per i 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 possano utilizzare al posto del account di servizio predefinito di Compute Engine. Per scoprire come creare un account di servizio con privilegi minimi, vedi Utilizzare un service account con privilegio minimo minimi.

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

Terraform

Per aggiungere un pool di nodi che utilizza i 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 saperne di più sull'utilizzo di Terraform, vedi Supporto di Terraform per GKE.

Passaggi successivi