Connettersi a Cloud SQL per MySQL da Google Kubernetes Engine
Questa pagina mostra come eseguire il deployment di un'app di esempio Google Kubernetes Engine (GKE) connesso a un'istanza MySQL tramite la console Google Cloud di un'applicazione client. Le risorse create in questa guida rapida in genere costano meno di uno a patto che tu completi i passaggi, inclusa la pulizia, in tempi brevi in modo adeguato.
Prima di iniziare
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
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.
Ciò 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, l'accesso da riga di comando alle risorse Google Cloud direttamente dal browser. Puoi utilizzare Cloud Shell per eseguire i comandi
gcloud
presentati in questa guida rapida.Esegui il comando
gcloud services enable
come segue utilizzando Cloud Shell per abilitare le API richieste 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 seguenti API:
- 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
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona
quickstart-instance
. - Dal menu di navigazione SQL, seleziona Database.
- Fai clic su Crea database.
- Nel campo Nome database della finestra di dialogo Crea un database
inserisci
quickstart-db
. Lascia invariati i valori del set di caratteri e delle regole di confronto. - 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
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Users (Utenti) dal menu di navigazione SQL.
- 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. Conservalo 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 IP o un intervallo di indirizzi nella sezione Host. L'utente può quindi connettersi solo dall'indirizzo IP o gli indirizzi IP specificati.
- Nome utente: impostato su
- 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 una 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 del nome utente sono gli stessi per Cloud SQL e per MySQL on-premise; 32 caratteri per MySQL 8.0, 16 caratteri per versioni precedenti.
Crea un cluster GKE
Console
-
Nella console Google Cloud, vai alla pagina Google Kubernetes Engine.
- Fai clic su Crea.
- Fai clic su Configura per GKE Autopilot.
- In Nome, specifica
gke-cloud-sql-quickstart
come nome del cluster. - 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 di esempio Cloud SQL 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 connetterti al tuo
di Cloud SQL. I passaggi rimanenti di questa guida rapida richiedono l'utilizzo del gcloud
e kubectl
a riga di comando. Entrambi gli strumenti sono preinstallati in Cloud Shell.
Vai
-
Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
Apri l'editor di Cloud Shell -
Nella finestra di dialogo
Open in Cloud Shell
, fai clic su Conferma per scarica il codice dell'app di esempio e apri la directory dell'app di esempio nell'editor di Cloud Shell.
Java
-
Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
Apri l'editor di Cloud Shell -
Nella finestra di dialogo
Open in Cloud Shell
, fai clic su Conferma per scarica il codice dell'app di esempio e apri la directory dell'app di esempio nell'editor di Cloud Shell.
Node.js
-
Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
Apri l'editor di Cloud Shell -
Nella finestra di dialogo
Open in Cloud Shell
, fai clic su Conferma per scarica il codice dell'app di esempio e apri la directory dell'app di esempio nell'editor di Cloud Shell.
Python
-
Nell'editor di Cloud Shell, apri il codice sorgente dell'app di esempio.
Apri l'editor di Cloud Shell -
Nella finestra di dialogo
Open in Cloud Shell
, fai clic su Conferma per scarica il codice dell'app di esempio e apri la directory dell'app di esempio nell'editor di Cloud Shell.
Abilita il cluster GKE
Abilita il cluster GKE appena creato come cluster predefinito da utilizzare per i comandi rimanenti in questa guida rapida.
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
-
Esegui
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"
- Esegui
gcloud projects add-iam-policy-binding
. come segue per aggiungere il ruolo Client Cloud SQL al Account di servizio Google Cloud che hai 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"
- L'app di esempio utilizza il logging, quindi esegui
gcloud projects add-iam-policy-binding
come segue per aggiungere il ruolo Writer log al Account di servizio Google Cloud che hai 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"
- L'account di servizio deve essere in grado di estrarre immagini dal repository artistico, quindi esegui
gcloud projects add-iam-policy-binding
come segue per aggiungere il ruolo Lettore Artifact Registry al l'account di servizio. 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/artifactregistry.reader"
- Creare un account di servizio Kubernetes.
- Aggiorna il
service-account.yaml
nell'editor di Cloud Shell. Sostituisci<YOUR-KSA-NAME>
conksa-cloud-sql
. - Esegui
kubectl apply
. come segue in Cloud Shell:kubectl apply -f service-account.yaml
- Aggiorna il
- Esegui
gcloud iam service-accounts add-iam-policy-binding
. come segue per abilitare l'associazione IAM dell'account di servizio Google Cloud e l'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
- Esegui l'
kubectl annotate
come segue per annotare l'account di servizio Kubernetes con l'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
- YOUR_KSA_NAME con
Configura i secret
Esegui kubectl create secret generic
.
come segue per creare secret di Kubernetes per database, user,
e la password utente che devono essere utilizzate dall'app di esempio. I valori di ogni secret
si basano sui valori specificati nei passaggi precedenti di questa guida rapida.
Sostituisci DB_PASS con la password del quickstart-user
creata 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
Vai
-
Esegui il seguente
gcloud artifacts repositories create
in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del tuo 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"
-
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
-
Esegui il seguente
gcloud artifacts repositories create
in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del tuo 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"
-
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
-
Esegui il seguente
gcloud artifacts repositories create
in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del tuo 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"
-
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
-
Esegui il seguente
gcloud artifacts repositories create
in Cloud Shell per creare un repository in Artifact Registry denominato gke-cloud-sql-repo nella stessa regione del tuo 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"
-
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 per le risorse utilizzate in questa pagina, segui questi passaggi.
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona l'istanza
quickstart-instance
per aprire Dettagli istanza . - Nella barra delle icone nella parte superiore della pagina, fai clic su Elimina.
- Nella finestra di dialogo Elimina istanza, digita
quickstart-instance
, quindi fai clic su Elimina per eliminare l'istanza. -
Nella console Google Cloud, vai alla pagina Google Kubernetes Engine.
- Fai clic sulla casella di controllo accanto al nome del servizio
gke-cloud-sql-quickstart
. - Fai clic sul pulsante Elimina nella parte superiore della pagina di Google Kubernetes Engine.
Passaggi facoltativi di pulizia
Se non utilizzi l'account di servizio Google Cloud che hai creato rapida, puoi rimuoverlo.
-
Nella console Google Cloud, vai alla pagina IAM.
- Seleziona la casella di controllo per l'account IAM denominato
gke-quickstart-service-account
. - Fai clic su Rimuovi e conferma la rimozione.
Se non utilizzi le API abilitate in questa guida rapida, possono disattivarle.
- API che sono state abilitate in questa guida rapida:
- API Compute Engine
- API Cloud SQL Admin
- API Google Kubernetes Engine
- API Artifact Registry
- API Cloud Build
Nella console Google Cloud, vai alla pagina API.
Seleziona l'API che desideri disabilitare e fai clic sul pulsante Pulsante Disabilita API.
Passaggi successivi
In base alle tue esigenze, puoi scoprire di più sulla creazione di istanze Cloud SQL.Scopri inoltre come creare utenti MySQL. e database per la tua istanza Cloud SQL.
Vedi anche le informazioni sui prezzi di Cloud SQL.
Scopri di più su:
- Tutte le opzioni di connettività in Cloud SQL.
- Configura l'istanza Cloud SQL con un indirizzo IP pubblico.
- Configura l'istanza Cloud SQL con un indirizzo IP privato.
Inoltre, puoi scoprire come connetterti a un'istanza Cloud SQL altre applicazioni Google Cloud: