Connettiti a Cloud SQL per MySQL da Google Kubernetes Engine

Questa pagina mostra come eseguire il deployment di un'app di esempio su Google Kubernetes Engine (GKE) connessa a un'istanza MySQL tramite la console Google Cloud e un'applicazione client. Le risorse create in questa guida rapida costano in genere meno di un dollaro (USD), supponendo che tu completi i passaggi, inclusa la pulizia, in modo tempestivo.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  6. Abilita le API Google Cloud necessarie per eseguire un'app di esempio Cloud SQL su GKE.

    Console

    Fai clic su Abilita API per abilitare le API richieste per questa guida rapida.

    Abilita le API

    Questa operazione abilita le seguenti API:

    • API Compute Engine
    • API Cloud SQL Admin
    • API Google Kubernetes Engine
    • API Artifact Registry
    • API Cloud Build

    gcloud

    Fai clic sul pulsante seguente per aprire Cloud Shell, che fornisce l'accesso tramite riga di comando alle risorse Google Cloud direttamente dal browser. Puoi usare Cloud Shell per eseguire i comandi gcloud presentati in questa guida rapida.

    Apri Cloud Shell

    Esegui il comando gcloud services enable come segue utilizzando Cloud Shell per abilitare le API necessarie per questa guida rapida:

    gcloud services enable compute.googleapis.com sqladmin.googleapis.com \
         container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com

    Questo comando abilita le API seguenti:

    • API Compute Engine
    • API Cloud SQL Admin
    • API GKE
    • API Artifact Registry
    • API Cloud Build

configura Cloud SQL

crea un'istanza Cloud SQL

Crea un database

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Seleziona quickstart-instance.
  3. Dal menu di navigazione SQL, seleziona Database.
  4. Fai clic su Crea database.
    1. Nel campo Nome database della finestra di dialogo Crea un database, inserisci quickstart-db. Lascia i valori per il set di caratteri e le regole di confronto.
    2. Fai clic su Crea.

gcloud

Esegui il comando gcloud sql databases create per creare un database.

gcloud sql databases create quickstart-db --instance=quickstart-instance

Crea un utente

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Utenti dal menu di navigazione SQL.
  4. Fai clic su Aggiungi account utente.
    • Nella pagina Aggiungi un account utente all'istanza instance_name, aggiungi le seguenti informazioni:
      • Nome utente: impostato su quickstart-user
      • Password: specifica una password per l'utente del database. Annotalo per utilizzarlo in un passaggio successivo di questa guida rapida.
      • Nella sezione Nome host, l'impostazione predefinita è Consenti qualsiasi host, il che significa che l'utente può connettersi da qualsiasi indirizzo IP.

        (Facoltativo) Seleziona Limita l'host in base all'indirizzo IP o all'intervallo di indirizzi e inserisci un indirizzo o un intervallo di indirizzi IP nella sezione Host. L'utente può quindi connettersi solo dall'indirizzo IP o dagli indirizzi specificati.

  5. Fai clic su Aggiungi.

gcloud

Prima di eseguire il comando come segue, sostituisci DB_PASS con una password per l'utente del database. Annotalo per utilizzarlo in un passaggio successivo di questa guida rapida.

Esegui il comando gcloud sql users create per creare l'utente.

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=DB_PASS

I limiti di lunghezza dei nomi utente sono gli stessi per Cloud SQL e per MySQL on-premise; 32 caratteri per MySQL 8.0, 16 caratteri per le versioni precedenti.

crea un cluster GKE

Console

  1. Nella console Google Cloud, vai alla pagina Google Kubernetes Engine.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.
  3. Fai clic su Configura per GKE Autopilot.
  4. In Nome, specifica il nome del cluster gke-cloud-sql-quickstart.
  5. Fai clic su Crea.

gcloud

Esegui il comando gcloud container clusters create-auto per creare il cluster.

gcloud container clusters create-auto gke-cloud-sql-quickstart \
    --region us-central1

Clona un'app Cloud SQL di esempio nell'editor di Cloud Shell

Con un'istanza Cloud SQL, un database e un cluster GKE, ora puoi clonare e configurare un'applicazione di esempio per la connessione alla tua istanza Cloud SQL. I passaggi rimanenti di questa guida rapida richiedono l'utilizzo degli strumenti a riga di comando gcloud e kubectl. Entrambi gli strumenti sono preinstallati in Cloud Shell.

Go

  1. Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.

    Apri l'editor di Cloud Shell
  2. Nella finestra di dialogo Open in Cloud Shell, fai clic su Conferma per scaricare il codice dell'app di esempio e aprire la directory dell'app di esempio nell'editor di Cloud Shell.

Java

  1. Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
    Apri l'editor di Cloud Shell
  2. Nella finestra di dialogo Open in Cloud Shell, fai clic su Conferma per scaricare il codice dell'app di esempio e aprire la directory dell'app di esempio nell'editor di Cloud Shell.

Node.js

  1. Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
    Apri l'editor di Cloud Shell
  2. Nella finestra di dialogo Open in Cloud Shell, fai clic su Conferma per scaricare il codice dell'app di esempio e aprire la directory dell'app di esempio nell'editor di Cloud Shell.

Python

  1. Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
    Apri l'editor di Cloud Shell
  2. Nella finestra di dialogo Open in Cloud Shell, fai clic su Conferma per scaricare il codice dell'app di esempio e aprire la directory dell'app di esempio nell'editor di Cloud Shell.

Abilita il cluster GKE

Abilita il cluster GKE che hai appena creato come cluster predefinito da utilizzare per i comandi rimanenti in questa guida rapida.

Esegui il comando gcloud container clusters get-credentials come segue per abilitare il cluster GKE.
gcloud container clusters get-credentials gke-cloud-sql-quickstart \
  --region us-central1

Configurare un account di servizio

Crea e configura un account di servizio Google Cloud che deve essere utilizzato da GKE in modo che abbia il ruolo Client Cloud SQL con le autorizzazioni per la connessione a Cloud SQL.
  1. Esegui il comando gcloud iam service-accounts create come segue per creare un nuovo account di servizio:
    gcloud iam service-accounts create gke-quickstart-service-account \
      --display-name="GKE Quickstart Service Account"
  2. Esegui il comando gcloud projects add-iam-policy-binding come segue per aggiungere il ruolo Client Cloud SQL all'account di servizio Google Cloud appena creato. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
      --role="roles/cloudsql.client"
  3. L'app di esempio utilizza il logging, perciò esegui il comando gcloud projects add-iam-policy-binding come segue per aggiungere il ruolo Writer log all'account di servizio Google Cloud appena creato. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
      --role="roles/logging.logWriter"
Crea un account di servizio Kubernetes configurato per avere accesso a Cloud SQL associandolo all'account di servizio Google Cloud tramite Workload Identity.
  1. Creare un account di servizio Kubernetes.
    1. Aggiorna il file service-account.yaml nell'editor di Cloud Shell. Sostituisci <YOUR-KSA-NAME> con ksa-cloud-sql.
    2. Esegui il comando kubectl apply come segue in Cloud Shell:
      kubectl apply -f service-account.yaml
  2. Esegui il comando gcloud iam service-accounts add-iam-policy-binding come segue per abilitare l'associazione IAM dell'account di servizio Google Cloud e dell'account di servizio Kubernetes. Effettua le seguenti sostituzioni:
    • YOUR_PROJECT_ID con l'ID progetto.
    • YOUR_K8S_NAMESPACE con default, che è lo spazio dei nomi predefinito per i cluster creati in GKE.
    • YOUR_KSA_NAME con ksa-cloud-sql.
    gcloud iam service-accounts add-iam-policy-binding \
      --role="roles/iam.workloadIdentityUser" \
      --member="serviceAccount:YOUR_PROJECT_ID.svc.id.goog[YOUR_K8S_NAMESPACE/YOUR_KSA_NAME]" \
      gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com
  3. Esegui il comando kubectl annotate come segue per annotare l'account di servizio Kubernetes con associazione IAM. Effettua le seguenti sostituzioni:
    • YOUR_KSA_NAME con ksa-cloud-sql.
    • YOUR_PROJECT_ID con l'ID progetto.
    kubectl annotate serviceaccount \
      YOUR_KSA_NAME  \
      iam.gke.io/gcp-service-account=gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com

Configura i secret

Esegui il comando kubectl create secret generic come segue per creare secret Kubernetes per il database, l'utente e la password utente che verranno utilizzati dall'app di esempio. I valori di ciascun secret si basano sui valori specificati nei passaggi precedenti di questa guida rapida. Sostituisci DB_PASS con la password dell'account quickstart-user creato nel passaggio precedente della guida rapida Creare un utente.

kubectl create secret generic gke-cloud-sql-secrets \
  --from-literal=database=quickstart-db \
  --from-literal=username=quickstart-user \
  --from-literal=password=DB_PASS

Crea l'app di esempio

Go

  1. Esegui il comando gcloud artifacts repositories create seguente in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del cluster. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud artifacts repositories create gke-cloud-sql-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=us-central1 \
      --description="GKE Quickstart sample app"
  2. Esegui il comando gcloud builds submit come segue in Cloud Shell per creare un container Docker e pubblicarlo in Artifact Registry. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud builds submit \
      --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .

Java

  1. Esegui il comando gcloud artifacts repositories create seguente in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del cluster. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud artifacts repositories create gke-cloud-sql-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=us-central1 \
      --description="GKE Quickstart sample app"
  2. Esegui il comando mvn come segue in Cloud Shell per creare un container Docker e pubblicarlo in Artifact Registry. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
      -Dimage=us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql \
      -DskipTests -Djib.to.credHelper=gcloud

Node.js

  1. Esegui il comando gcloud artifacts repositories create seguente in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del cluster. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud artifacts repositories create gke-cloud-sql-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=us-central1 \
      --description="GKE Quickstart sample app"
  2. Esegui il comando gcloud builds submit come segue in Cloud Shell per creare un container Docker e pubblicarlo in Artifact Registry. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud builds submit \
      --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .

Python

  1. Esegui il comando gcloud artifacts repositories create seguente in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del cluster. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud artifacts repositories create gke-cloud-sql-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=us-central1 \
      --description="GKE Quickstart sample app"
  2. Esegui il comando gcloud builds submit come segue in Cloud Shell per creare un container Docker e pubblicarlo in Artifact Registry. Sostituisci YOUR_PROJECT_ID con l'ID progetto.
    gcloud builds submit \
      --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .

Esegui il deployment dell'app di esempio

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Seleziona l'istanza quickstart-instance per aprire la pagina Dettagli istanza.
  3. Nella barra delle icone nella parte superiore della pagina, fai clic su Elimina.
  4. Nella finestra di dialogo Elimina istanza, digita quickstart-instance, quindi fai clic su Elimina per eliminare l'istanza.
  5. Nella console Google Cloud, vai alla pagina Google Kubernetes Engine.

    Vai a Google Kubernetes Engine

  6. Fai clic sulla casella di controllo accanto al nome del servizio gke-cloud-sql-quickstart.
  7. Fai clic sul pulsante Elimina nella parte superiore della pagina Google Kubernetes Engine.

Passaggi di pulizia facoltativi

Se non utilizzi l'account di servizio Google Cloud che hai creato per questa guida rapida, puoi rimuoverlo.

  1. Nella console Google Cloud, vai alla pagina IAM.

    Vai a IAM

  2. Seleziona la casella di controllo in corrispondenza dell'account IAM denominato gke-quickstart-service-account.
  3. Fai clic su Rimuovi e conferma la rimozione.

Se non utilizzi le API che sono state abilitate in questa guida rapida, puoi disabilitarle.

  • API abilitate in questa guida rapida:
    • API Compute Engine
    • API Cloud SQL Admin
    • API Google Kubernetes Engine
    • API Artifact Registry
    • API Cloud Build
  1. Nella console Google Cloud, vai alla pagina API.

    Vai alle API

  2. Seleziona un'API che vuoi disabilitare e fai clic sul pulsante Disabilita API.

Passaggi successivi

In base alle tue esigenze, puoi scoprire di più sulla creazione di istanze Cloud SQL.

Puoi inoltre scoprire di più sulla creazione di utenti MySQL e database per la tua istanza Cloud SQL.

Consulta anche le informazioni sui prezzi di Cloud SQL.

Scopri di più su:

Inoltre, puoi scoprire come connetterti a un'istanza Cloud SQL da altre applicazioni Google Cloud: