Se connecter à Cloud SQL pour SQL Server depuis Google Kubernetes Engine
Cette page explique comment déployer un exemple d'application sur Google Kubernetes Engine (GKE) connecté à une instance SQL Server à l'aide de Google Cloud Console et d'une application cliente. Les ressources créées dans ce guide de démarrage rapide coûtent généralement moins d'un dollar (USD), en supposant que vous effectuiez les étapes, y compris le nettoyage, en temps opportun.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Activer les API Google Cloud nécessaires à l'exécution d'un exemple d'application Cloud SQL sur GKE
Console
Cliquez sur Activer les API pour activer les API requises dans ce guide de démarrage rapide.
Cela aura pour effet d'activer les API suivantes :
- API Compute Engine
- API Cloud SQL Admin
- API Google Kubernetes Engine
- API Artifact Registry
- API Cloud Build
gcloud
Cliquez sur le bouton suivant pour ouvrir Cloud Shell, qui fournit un accès en ligne de commande à vos ressources Google Cloud directement depuis le navigateur. Cloud Shell peut être utilisé pour exécuter les commandes
gcloud
présentées dans ce guide de démarrage rapide.Exécutez la commande
gcloud services enable
comme suit à l'aide de Cloud Shell pour activer les API requises pour ce guide de démarrage rapide :gcloud services enable compute.googleapis.com sqladmin.googleapis.com \ container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com
Cette commande active les API suivantes :
- API Compute Engine
- API Cloud SQL Admin
- API GKE
- API Artifact Registry
- API Cloud Build
Configurer Cloud SQL
Créer une instance Cloud SQL
Créer une base de données
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Sélectionnez
quickstart-instance
. - Dans le menu de navigation SQL, sélectionnez Bases de données.
- Cliquez sur Créer une base de données.
- Dans le champ Nom de la base de données de la boîte de dialogue Nouvelle base de données, saisissez
quickstart-db
. - Cliquez sur Créer.
gcloud
Exécutez la commande gcloud
sql databases create
pour créer une base de données.
gcloud sql databases create quickstart-db --instance=quickstart-instance
Créer un cluster GKE
Console
-
Dans Google Cloud Console, accédez à la page Google Kubernetes Engine.
- Cliquez sur Créer.
- Cliquez sur Configure (Configurer) pour GKE Autopilot.
- Dans le champ Name (Nom), spécifiez le nom du cluster comme
gke-cloud-sql-quickstart
. - Cliquez sur Créer.
gcloud
Exécutez la commande gcloud container clusters create-auto
pour créer le cluster.
gcloud container clusters create-auto gke-cloud-sql-quickstart \ --region us-central1
Cloner une application exemple Cloud SQL dans l'éditeur Cloud Shell
Avec une instance Cloud SQL, une base de données et un cluster GKE, vous pouvez maintenant cloner et configurer un exemple d'application pour se connecter à votre instance Cloud SQL. Les étapes restantes de ce guide de démarrage rapide nécessitent l'utilisation des outils de ligne de commande gcloud
et kubectl
. Ces deux outils sont préinstallés dans Cloud Shell.
Go
-
Dans l'éditeur Cloud Shell, ouvrez le code source de l'exemple d'application.
Ouvrir l'éditeur Cloud Shell -
Dans la boîte de dialogue
Open in Cloud Shell
, cliquez sur Confirmer pour télécharger le code de l'exemple d'application et ouvrir le répertoire de l'exemple d'application dans l'éditeur Cloud Shell.
Java
-
Dans l'éditeur Cloud Shell, ouvrez le code source de l'exemple d'application.
Ouvrir l'éditeur Cloud Shell -
Dans la boîte de dialogue
Open in Cloud Shell
, cliquez sur Confirmer pour télécharger le code de l'exemple d'application et ouvrir le répertoire de l'exemple d'application dans l'éditeur Cloud Shell.
Node.js
-
Dans l'éditeur Cloud Shell, ouvrez le code source de l'exemple d'application.
Ouvrir l'éditeur Cloud Shell -
Dans la boîte de dialogue
Open in Cloud Shell
, cliquez sur Confirmer pour télécharger le code de l'exemple d'application et ouvrir le répertoire de l'exemple d'application dans l'éditeur Cloud Shell.
Python
-
Dans l'éditeur Cloud Shell, ouvrez le code source de l'exemple d'application.
Ouvrir l'éditeur Cloud Shell -
Dans la boîte de dialogue
Open in Cloud Shell
, cliquez sur Confirmer pour télécharger le code de l'exemple d'application et ouvrir le répertoire de l'exemple d'application dans l'éditeur Cloud Shell.
Activer le cluster GKE
Activez le cluster GKE que vous venez de créer comme cluster par défaut à utiliser pour les commandes restantes dans ce guide de démarrage rapide.
gcloud container clusters get-credentials
comme suit pour activer le cluster GKE :
gcloud container clusters get-credentials gke-cloud-sql-quickstart \ --region us-central1
Configurer un compte de service
-
Exécutez la commande
gcloud iam service-accounts create
comme suit pour créer un compte de service :gcloud iam service-accounts create gke-quickstart-service-account \ --display-name="GKE Quickstart Service Account"
- Exécutez la commande
gcloud projects add-iam-policy-binding
comme suit pour ajouter le rôle Client Cloud SQL au compte de service Google Cloud que vous venez de créer. Remplacez YOUR_PROJECT_ID par l'ID du projet.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'exemple d'application utilise la journalisation. Exécutez donc la commande
gcloud projects add-iam-policy-binding
comme décrit ci-dessous pour ajouter le rôle Rédacteur de journal au compte de service Google Cloud que vous venez de créer. Remplacez YOUR_PROJECT_ID par l'ID du projet.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"
- Le compte de service doit être en mesure d'extraire des images du dépôt d'artefacts. Par conséquent, exécutez la commande
gcloud projects add-iam-policy-binding
comme suit pour ajouter le rôle Lecteur Artifact Registry au compte de service. Remplacez YOUR_PROJECT_ID par l'ID du projet.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"
- Créez un compte de service Kubernetes.
- Mettez à jour le fichier
service-account.yaml
dans l'éditeur Cloud Shell. Remplacez<YOUR-KSA-NAME>
parksa-cloud-sql
. - Exécutez la commande
kubectl apply
comme suit dans Cloud Shell :kubectl apply -f service-account.yaml
- Mettez à jour le fichier
- Exécutez la commande
gcloud iam service-accounts add-iam-policy-binding
comme suit pour activer la liaison IAM du compte de service Google Cloud et du compte de service Kubernetes. Effectuez les remplacements suivants :- YOUR_PROJECT_ID par l'ID du projet.
- YOUR_K8S_NAMESPACE par
default
, qui est l'espace de noms par défaut pour les clusters créés dans GKE. - YOUR_KSA_NAME correspond à
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
- Exécutez la commande
kubectl annotate
comme suit pour annoter le compte de service Kubernetes avec une liaison IAM. Effectuez les remplacements suivants :- YOUR_KSA_NAME correspond à
ksa-cloud-sql
. - YOUR_PROJECT_ID par l'ID du projet.
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 correspond à
Configurer les secrets
Exécutez la commande kubectl create secret generic
suivante afin de créer des secrets Kubernetes pour la base de données, l'utilisateur et le mot de passe de l'utilisateur que l'exemple d'application doit utiliser. Les valeurs de chaque secret sont basées sur les valeurs spécifiées dans les étapes précédentes de ce guide de démarrage rapide.
Remplacez DB_PASS par le mot de passe de l'utilisateur racine sqlserver
que vous avez créé à l'étape Créer une instance Cloud SQL.
kubectl create secret generic gke-cloud-sql-secrets \ --from-literal=database=quickstart-db \ --from-literal=username=sqlserver \ --from-literal=password=DB_PASS
Créer l'application exemple
Go
-
Exécutez la commande
gcloud artifacts repositories create
suivante dans Cloud Shell pour créer un dépôt dans Artifact Registry nommé gke-cloud-sql-repo dans la même région que votre cluster. Remplacez YOUR_PROJECT_ID par l'ID du projet.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Exécutez la commande
gcloud builds submit
comme suit dans Cloud Shell pour créer un conteneur Docker et le publier dans Artifact Registry. Remplacez YOUR_PROJECT_ID par l'ID du projet.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Java
-
Exécutez la commande
gcloud artifacts repositories create
suivante dans Cloud Shell pour créer un dépôt dans Artifact Registry nommé gke-cloud-sql-repo dans la même région que votre cluster. Remplacez YOUR_PROJECT_ID par l'ID du projet.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Exécutez la commande
mvn
comme suit dans Cloud Shell pour créer un conteneur Docker et le publier dans Artifact Registry. Remplacez YOUR_PROJECT_ID par l'ID du projet.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
-
Exécutez la commande
gcloud artifacts repositories create
suivante dans Cloud Shell pour créer un dépôt dans Artifact Registry nommé gke-cloud-sql-repo dans la même région que votre cluster. Remplacez YOUR_PROJECT_ID par l'ID du projet.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Exécutez la commande
gcloud builds submit
comme suit dans Cloud Shell pour créer un conteneur Docker et le publier dans Artifact Registry. Remplacez YOUR_PROJECT_ID par l'ID du projet.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Python
-
Exécutez la commande
gcloud artifacts repositories create
suivante dans Cloud Shell pour créer un dépôt dans Artifact Registry nommé gke-cloud-sql-repo dans la même région que votre cluster. Remplacez YOUR_PROJECT_ID par l'ID du projet.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Exécutez la commande
gcloud builds submit
comme suit dans Cloud Shell pour créer un conteneur Docker et le publier dans Artifact Registry. Remplacez YOUR_PROJECT_ID par l'ID du projet.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Déployer l'exemple d'application
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Sélectionnez l'instance
quickstart-instance
pour ouvrir la page Détails de l'instance. - Dans la barre d'icônes en haut de la page, cliquez sur Supprimer.
- Dans la boîte de dialogue Supprimer l'instance, saisissez
quickstart-instance
puis cliquez sur Supprimer pour supprimer l'instance. -
Dans Google Cloud Console, accédez à la page Google Kubernetes Engine.
- Cochez la case à côté du nom du service
gke-cloud-sql-quickstart
. - Cliquez sur le bouton Supprimer en haut de la page Google Kubernetes Engine.
Étapes de nettoyage facultatives
Si vous n'utilisez pas le compte de service Google Cloud que vous avez créé pour ce démarrage rapide, vous pouvez le supprimer.
-
Dans la console Google Cloud, accédez à la page IAM.
- Cochez la case correspondant au compte IAM nommé
gke-quickstart-service-account
. - Cliquez sur Supprimer, puis confirmez la suppression.
Si vous n'utilisez pas les API activées dans le cadre de ce démarrage rapide, vous pouvez les désactiver.
- API activées dans ce guide de démarrage rapide :
- API Compute Engine
- API Cloud SQL Admin
- API Google Kubernetes Engine
- API Artifact Registry
- API Cloud Build
Dans Google Cloud Console, accédez à la page API.
Sélectionnez l'API que vous souhaitez désactiver, puis cliquez sur le bouton Désactiver l'API.
Étape suivante
En fonction de vos besoins, vous pouvez en apprendre plus sur la création d'instances Cloud SQL.Vous pouvez également découvrir comment créer des utilisateurs et des bases de données SQL Server pour votre instance Cloud SQL.
Consultez également les informations tarifaires de Cloud SQL.
En savoir plus :
- Toutes les options de connectivité dans Cloud SQL.
- Configurez votre instance Cloud SQL avec une adresse IP publique.
- Configurez votre instance Cloud SQL avec une adresse IP privée.
Vous pouvez également en savoir plus sur la connexion à une instance Cloud SQL à partir d'autres applications Google Cloud :