从 Google Kubernetes Engine 连接到 Cloud SQL for MySQL
本页面介绍如何使用 Google Cloud 控制台和客户端应用在 Google Kubernetes Engine (GKE) 上部署连接到 MySQL 实例的示例应用。如果您及时完成本快速入门中的步骤(包括清理),那么在此期间所创建资源的费用通常不会超过 1 美元。
准备工作
- 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.
-
启用在 GKE 上运行 Cloud SQL 示例应用所需的 Google Cloud API。
点击启用 API 以启用本快速入门所需的 API。
这将启用以下 API:
- Compute Engine API
- Cloud SQL Admin API
- Google Kubernetes Engine API
- Artifact Registry API
- Cloud Build API
点击以下按钮打开 Cloud Shell,以通过命令行直接在浏览器中访问 Google Cloud 资源。 Cloud Shell 可用于运行本快速入门中介绍的
gcloud
命令。按照以下方式使用 Cloud Shell 运行
gcloud services enable
命令,以启用本快速入门所需的 API。gcloud services enable compute.googleapis.com sqladmin.googleapis.com \ container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com
此命令会启用以下 API:
- Compute Engine API
- Cloud SQL Admin API
- GKE API
- Artifact Registry API
- Cloud Build API
设置 Cloud SQL
创建 Cloud SQL 实例
公共 IP
创建具有公共 IP 地址的实例
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击创建实例。
- 点击MySQL。
- 在实例 ID 部分输入
quickstart-instance
。 - 为根用户输入密码。保存此密码以供将来使用。
- 在选择区域和地区可用性中点击单个区域选项。
- 点击并展开显示配置部分。
- 在机器类型下拉菜单中,选择轻量级。
点击创建实例,然后等待实例初始化并启动。
创建具有公共 IP 地址的实例
按照以下方式运行 gcloud
sql instances create
命令之前,请将 DB_ROOT_PASSWORD 替换为数据库用户的密码。
(可选)修改以下参数的值:
- --database_version:数据库引擎类型和版本。 如果未指定,则使用 API 默认值。 请参阅 gcloud 数据库版本文档,以查看当前可用版本。
- --cpu:机器中所需的核心数。
- --memory:表示机器所需内存数量的整数值。应该提供大小单位(例如 3072MB 或 9GB)。如果未指定单位,则假定为 GB。
- --region:实例的区域位置(例如 asia-east1、us-east1)。如果未指定,则使用默认值
us-central
。 请参阅区域的完整列表。
运行 gcloud
sql instances create
命令以创建 Cloud SQL 实例。
gcloud sql instances createquickstart-instance \ --database-version=MYSQL_8_0 \ --cpu=1 \ --memory=4GB \ --region=us-central1 \ --root-password=DB_ROOT_PASSWORD
专用 IP
创建具有专用 IP 地址且启用了 SSL 的实例
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击创建实例。
- 点击MySQL。
- 在实例 ID 部分输入
quickstart-instance
。 - 为根用户输入密码。保存此密码以供将来使用。
- 在选择区域和地区可用性中点击单个区域选项。
- 点击并展开显示配置选项。
- 对于机器类型,选择轻量级。
- 在连接中,选择专用 IP。
- 在网络下拉菜单中,选择默认。
- 如果您看到显示需要专用服务访问通道连接的对话框,请点击设置连接按钮。
- 在启用 Service Networking API 对话框中,点击启用 API 按钮。
- 在分配 IP 范围对话框中,选择使用自动分配的 IP 范围,然后点击继续。
- 在创建连接对话框中,点击创建连接。
- 取消选中公共 IP 复选框以创建仅使用专用 IP 地址的实例。
- 点击创建实例,然后等待实例初始化并启动。
- 点击连接。
- 在安全性部分中,选择仅允许 SSL 连接以启用 SSL 连接。
- 在启用 SSL 对话框中,点击启用并重启,然后等待实例重启。
创建具有专用 IP 地址且启用了 SSL 的实例
创建具有专用 IP 地址的实例只需要配置专用服务访问通道,即可启用来自其他 Google Cloud 服务(如 GKE)的连接。
- 运行
gcloud compute addresses create
命令为专用服务访问通道连接分配 IP 范围: - 运行
gcloud services vpc-peerings connect
命令以创建专用服务访问通道连接: -
在按照以下方式运行
gcloud sql instances create
命令来创建实例之前,请将 DB_ROOT_PASSWORD 替换为数据库用户的密码。 - --database_version:数据库引擎类型和版本。 如果未指定,则使用 API 默认值。如需查看当前可用版本的列表,请参阅 gcloud 数据库版本。
- --cpu:机器中的核心数。
- --memory:指示机器要包括多少内存的整数。可以提供大小单位(例如 3072MB 或 9GB)。如果未指定单位,则假定为 GB。
- --region:实例的区域位置(例如 asia-east1、us-east1)。如果未指定,则使用默认值
us-central1
。 请参阅区域的完整列表。 运行
gcloud sql instances patch
命令以仅允许此实例建立 SSL 连接。
gcloud compute addresses create google-managed-services-default \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="peering range for Google" \ --network=default
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-default \ --network=default
(可选)修改以下参数的值:
运行 gcloud
sql instances create
命令以创建具有专用 IP 地址的 Cloud SQL 实例。
gcloud beta sql instances createquickstart-instance \ --database-version=MYSQL_8_0 \ --cpu=1 \ --memory=4GB \ --region=us-central1 \ --root-password=DB_ROOT_PASSWORD \ --no-assign-ip \ --network=default
gcloud sql instances patchquickstart-instance --require-ssl
创建数据库
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
。 - 从 SQL 导航菜单中选择数据库。
- 点击创建数据库。
- 在创建数据库对话框的数据库名称字段中,输入
quickstart-db
。保留字符集和排序规则的值。 - 点击创建。
运行 gcloud
sql databases create
命令以创建数据库。
gcloud sql databases createquickstart-db --instance=quickstart-instance
创建用户
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 如需打开实例的概览页面,请点击实例名称。
- 从 SQL 导航菜单中选择用户。
- 点击添加用户账号。
- 在将一个用户账号添加到实例 instance_name 页面中,添加以下信息:
- 用户名:设为
quickstart-user
- 密码:指定数据库用户的密码。记下此密码,以便在本快速入门的后续步骤中使用。
- 主机名部分的默认值为允许任何主机,这意味着用户可以从任何 IP 地址连接。
(可选)选择按 IP 地址或地址范围限制主机,然后在主机部分中输入 IP 地址或地址范围。然后,用户只能从指定的一个或多个 IP 地址进行连接。
- 用户名:设为
- 点击添加。
按照以下方式运行命令之前,请将 DB_PASS 替换为数据库用户的密码。记下此密码,以便在本快速入门的后续步骤中使用。
运行 gcloud sql users create
命令以创建用户。
gcloud sql users createquickstart-user \ --instance=quickstart-instance \ --password=DB_PASS
Cloud SQL 和本地 MySQL 的用户名长度限制一样;MySQL 8.0 及更高版本为 32 个字符,较低版本为 16 个字符。
创建 GKE 集群
-
在 Google Cloud 控制台中,转到 Google Kubernetes Engine 页面。
- 点击创建。
- 点击 GKE Autopilot 的配置。
- 对于名称,请将集群名称指定为
gke-cloud-sql-quickstart
。 - 点击创建。
运行 gcloud container clusters create-auto
命令以创建集群。
gcloud container clusters create-autogke-cloud-sql-quickstart \ --regionus-central1
将 Cloud SQL 示例应用克隆到 Cloud Shell Editor
创建好 Cloud SQL 实例、数据库和 GKE 集群后,您现在可以克隆和配置示例应用,以连接到 Cloud SQL 实例。本快速入门中的其余步骤需要使用 gcloud
和 kubectl
命令行工具。这两个工具都已预安装在 Cloud Shell 中。
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor -
在“
Open in Cloud Shell
”对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor -
在“
Open in Cloud Shell
”对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor -
在“
Open in Cloud Shell
”对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor -
在“
Open in Cloud Shell
”对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
启用 GKE 集群
启用您刚刚创建的 GKE 集群并将其设置为默认集群,以用于本快速入门中的其余命令。
gcloud container clusters get-credentials
命令以启用 GKE 集群。gcloud container clusters get-credentialsgke-cloud-sql-quickstart \ --regionus-central1
设置服务账号
-
按照以下方式运行
gcloud iam service-accounts create
命令来创建新的服务账号:gcloud iam service-accounts create gke-quickstart-service-account \ --display-name="GKE Quickstart Service Account"
- 按照以下方式运行
gcloud projects add-iam-policy-binding
命令,将 Cloud SQL Client 角色添加到您刚创建的 Google Cloud 服务账号。将 YOUR_PROJECT_ID 替换为项目 ID。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" - 示例应用使用日志记录功能,因此请按如下所示运行
gcloud projects add-iam-policy-binding
命令,将 Log Writer 角色添加到您刚刚创建的 Google Cloud 服务账号。将 YOUR_PROJECT_ID 替换为项目 ID。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" - 服务账号必须能够从 Artifactory 制品库拉取映像,因此请按如下所示运行
gcloud projects add-iam-policy-binding
命令以向服务账号添加 Artifact Registry Reader 角色。将 YOUR_PROJECT_ID 替换为项目 ID。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"
- 创建 Kubernetes 服务账号:
- 在 Cloud Shell Editor 中更新
service-account.yaml
文件。将<YOUR-KSA-NAME>
替换为ksa-cloud-sql
。 - 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令:kubectl apply -f service-account.yaml
- 在 Cloud Shell Editor 中更新
- 按照以下方式运行
gcloud iam service-accounts add-iam-policy-binding
命令以启用服务账号和 Kubernetes 服务账号的 IAM 绑定。 Google Cloud 进行以下替换:- 将 YOUR_PROJECT_ID 替换为项目 ID。
- 将 YOUR_K8S_NAMESPACE 替换为
default
,这是在 GKE 中创建的集群的默认命名空间。 - 将 YOUR_KSA_NAME 替换为
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 - 按照以下方式运行
kubectl annotate
命令以使用 IAM 绑定为 Kubernetes 服务账号添加注解。进行以下替换:- 将 YOUR_KSA_NAME 替换为
ksa-cloud-sql
。 - 将 YOUR_PROJECT_ID 替换为项目 ID。
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 替换为
配置 Secret
按照以下方式运行 kubectl create secret generic
命令,为示例应用要使用的数据库、用户和用户密码创建 Kubernetes Secret。每个 Secret 的值均基于本快速入门前面的步骤中指定的值。
将 DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user
的密码。
kubectl create secret generic gke-cloud-sql-secrets \ --from-literal=database=quickstart-db \ --from-literal=username=quickstart-user \ --from-literal=password=DB_PASS
构建示例应用
-
在 Cloud Shell 中运行以下
gcloud artifacts repositories create
命令,以在 Artifact Registry 中创建名为 gke-cloud-sql-repo 的代码库,该代码库与集群位于同一区域。将 YOUR_PROJECT_ID 替换为项目 ID。gcloud artifacts repositories create
gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app" -
按照以下方式在 Cloud Shell 中运行
gcloud builds submit
命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为项目 ID。gcloud builds submit \ --tag
us-central1 -docker.pkg.dev/YOUR_PROJECT_ID /gke-cloud-sql-repo/gke-sql .
-
在 Cloud Shell 中运行以下
gcloud artifacts repositories create
命令,以在 Artifact Registry 中创建名为 gke-cloud-sql-repo 的代码库,该代码库与集群位于同一区域。将 YOUR_PROJECT_ID 替换为项目 ID。gcloud artifacts repositories create
gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app" -
按照以下方式在 Cloud Shell 中运行
mvn
命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为项目 ID。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
-
在 Cloud Shell 中运行以下
gcloud artifacts repositories create
命令,以在 Artifact Registry 中创建名为 gke-cloud-sql-repo 的代码库,该代码库与集群位于同一区域。将 YOUR_PROJECT_ID 替换为项目 ID。gcloud artifacts repositories create
gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app" -
按照以下方式在 Cloud Shell 中运行
gcloud builds submit
命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为项目 ID。gcloud builds submit \ --tag
us-central1 -docker.pkg.dev/YOUR_PROJECT_ID /gke-cloud-sql-repo/gke-sql .
-
在 Cloud Shell 中运行以下
gcloud artifacts repositories create
命令,以在 Artifact Registry 中创建名为 gke-cloud-sql-repo 的代码库,该代码库与集群位于同一区域。将 YOUR_PROJECT_ID 替换为项目 ID。gcloud artifacts repositories create
gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app" -
按照以下方式在 Cloud Shell 中运行
gcloud builds submit
命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为项目 ID。gcloud builds submit \ --tag
us-central1 -docker.pkg.dev/YOUR_PROJECT_ID /gke-cloud-sql-repo/gke-sql .
部署示例应用
公共 IP
示例应用配置完成后,您现在可以部署示例应用。
部署的示例应用将使用以 Kubernetes Sidecar 模式运行的 Cloud SQL 代理连接到 Cloud SQL 实例。Sidecar 模式的实现方式是使用一个额外的容器来部署工作负载,该容器与示例应用的容器共享同一个 Kubernetes pod。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。进行以下替换:<YOUR_KSA_NAME>
是ksa-cloud-sql
。<LOCATION>
是us-central1
。- 将
<YOUR_PROJECT_ID>
替换为项目 ID。 <YOUR-DB-SECRET>
是gke-cloud-sql-secrets
。- 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
已部署的示例应用使用 Cloud SQL Java 连接器连接到您的 Cloud SQL 实例。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。进行以下替换:<YOUR_KSA_NAME>
是ksa-cloud-sql
。<LOCATION>
是us-central1
。- 将
<YOUR_PROJECT_ID>
替换为项目 ID。 <YOUR-DB-SECRET>
是gke-cloud-sql-secrets
。- 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
部署的示例应用将使用以 Kubernetes Sidecar 模式运行的 Cloud SQL 代理连接到 Cloud SQL 实例。Sidecar 模式的实现方式是使用一个额外的容器来部署工作负载,该容器与示例应用的容器共享同一个 Kubernetes pod。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。进行以下替换:<YOUR_KSA_NAME>
是ksa-cloud-sql
。<LOCATION>
是us-central1
。- 将
<YOUR_PROJECT_ID>
替换为项目 ID。 <YOUR-DB-SECRET>
是gke-cloud-sql-secrets
。- 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
部署的示例应用将使用以 Kubernetes Sidecar 模式运行的 Cloud SQL 代理连接到 Cloud SQL 实例。Sidecar 模式的实现方式是使用一个额外的容器来部署工作负载,该容器与示例应用的容器共享同一个 Kubernetes pod。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。进行以下替换:<YOUR_KSA_NAME>
是ksa-cloud-sql
。<LOCATION>
是us-central1
。- 将
<YOUR_PROJECT_ID>
替换为项目 ID。 <YOUR-DB-SECRET>
是gke-cloud-sql-secrets
。- 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
专用 IP
示例应用配置完成后,您现在可以部署示例应用。
部署的示例应用将使用以 Kubernetes Sidecar 模式运行的 Cloud SQL 代理连接到 Cloud SQL 实例。Sidecar 模式的实现方式是使用一个额外的容器来部署工作负载,该容器与示例应用的容器共享同一个 Kubernetes pod。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。 进行以下替换和修改:- 将
<YOUR_KSA_NAME>
替换为ksa-cloud-sql
。 - 将
<LOCATION>
替换为us-central1
。 - 将
<YOUR_PROJECT_ID>
替换为项目 ID。 - 将
<YOUR-DB-SECRET>
替换为gke-cloud-sql-secrets
。 - 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。 - 启用 Cloud SQL 身份验证代理以使用其专用 IP 地址连接到您的 Cloud SQL 实例。通过移除
#
注释符号及其尾随空格来取消注释"-ip_address_types=PRIVATE"
标志。未注释的标志应如下所示:- "-ip_address_types=PRIVATE"
- 将
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
已部署的示例应用使用 Cloud SQL Java 连接器连接到您的 Cloud SQL 实例。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。进行以下替换:<YOUR_KSA_NAME>
是ksa-cloud-sql
。<LOCATION>
是us-central1
。- 将
<YOUR_PROJECT_ID>
替换为项目 ID。 <YOUR-DB-SECRET>
是gke-cloud-sql-secrets
。- 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
部署的示例应用将使用以 Kubernetes Sidecar 模式运行的 Cloud SQL 代理连接到 Cloud SQL 实例。Sidecar 模式的实现方式是使用一个额外的容器来部署工作负载,该容器与示例应用的容器共享同一个 Kubernetes pod。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。 进行以下替换和修改:- 将
<YOUR_KSA_NAME>
替换为ksa-cloud-sql
。 - 将
<LOCATION>
替换为us-central1
。 - 将
<YOUR_PROJECT_ID>
替换为项目 ID。 - 将
<YOUR-DB-SECRET>
替换为gke-cloud-sql-secrets
。 - 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。 - 启用 Cloud SQL 身份验证代理以使用其专用 IP 地址连接到您的 Cloud SQL 实例。通过移除
#
注释符号及其尾随空格来取消注释"-ip_address_types=PRIVATE"
标志。未注释的标志应如下所示:- "-ip_address_types=PRIVATE"
- 将
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
部署的示例应用将使用以 Kubernetes Sidecar 模式运行的 Cloud SQL 代理连接到 Cloud SQL 实例。Sidecar 模式的实现方式是使用一个额外的容器来部署工作负载,该容器与示例应用的容器共享同一个 Kubernetes pod。
-
通过运行
gcloud sql instances describe
命令获取 Cloud SQL 实例连接名称:gcloud sql instances describe
quickstart-instance --format='value(connectionName)' - 在 Cloud Shell Editor 中更新
deployment.yaml
文件。 进行以下替换和修改:- 将
<YOUR_KSA_NAME>
替换为ksa-cloud-sql
。 - 将
<LOCATION>
替换为us-central1
。 - 将
<YOUR_PROJECT_ID>
替换为项目 ID。 - 将
<YOUR-DB-SECRET>
替换为gke-cloud-sql-secrets
。 - 将
<INSTANCE_CONNECTION_NAME>
替换为从上一步的gcloud
命令检索到的 Cloud SQL 实例连接名称。格式为 project_id:region:instance_name。您也可以在 Cloud SQL 实例概览页面中找到实例连接名称。 - 启用 Cloud SQL 身份验证代理以使用其专用 IP 地址连接到您的 Cloud SQL 实例。通过移除
#
注释符号及其尾随空格来取消注释"-ip_address_types=PRIVATE"
标志。未注释的标志应如下所示:- "-ip_address_types=PRIVATE"
- 将
- 按照以下方式在 Cloud Shell 中运行
kubectl apply
命令以部署示例应用:kubectl apply -f deployment.yaml
- 按照以下方式运行
kubectl apply
命令在部署前端添加负载均衡器,以便您可以通过互联网访问它:kubectl apply -f service.yaml
- 按照以下方式运行
kubectl get
命令以获取服务详情:kubectl get services
- 当外部 IP 地址在服务详细信息中变得可用之后,复制该地址,这可能需要几分钟的时间。
- 查看已部署的示例应用。打开一个浏览器窗口并访问 Service 的外部 IP 地址。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
实例以打开实例详情页面。 - 在页面顶部的图标栏中,点击删除。
- 在删除实例对话框中,输入
quickstart-instance
,然后点击删除以删除该实例。 -
在 Google Cloud 控制台中,转到 Google Kubernetes Engine 页面。
- 点击
gke-cloud-sql-quickstart
服务名称旁边的复选框。 - 点击 Google Kubernetes Engine 页面顶部的删除按钮。
可选的清理步骤
如果您没有使用为本快速入门创建的 Google Cloud 服务账号,则可以将其移除。
-
在 Google Cloud 控制台中,转到 IAM 页面。
- 选中名为
gke-quickstart-service-account
的 IAM 账号对应的复选框。 - 点击移除,然后确认移除。
如果您没有使用在本快速入门中启用的 API,则可以将其停用。
- 在本快速入门中启用的 API:
- Compute Engine API
- Cloud SQL Admin API
- Google Kubernetes Engine API
- Artifact Registry API
- Cloud Build API
在 Google Cloud 控制台中,转到 API 页面。
选择您要停用的任何 API,然后点击停用 API 按钮。
后续步骤
您可以根据自己的需求详细了解如何创建 Cloud SQL 实例。您还可以了解如何为 Cloud SQL 实例创建 MySQL 用户和数据库。
另请参阅 Cloud SQL 价格信息。
详细了解以下内容:
此外,您还可以了解如何从其他 Google Cloud 应用连接到 Cloud SQL 实例: