本文档介绍了如何列出和描述 Cloud SQL 蓝绿部署、检查连接详细信息和配置差异,以及连接到绿色暂存环境以测试和验证工作负载。
准备工作
如需列出或描述蓝绿部署并连接到绿色暂存实例,请验证您是否拥有所需的角色和数据库凭据。
所需的角色和权限
如需获得列出和描述蓝绿部署所需的权限,请让管理员向您授予项目的以下 IAM 角色:
- Cloud SQL Viewer (
roles/cloudsql.viewer) - Cloud SQL Editor (
roles/cloudsql.editor) - Cloud SQL Admin (
roles/cloudsql.admin)
对于自定义角色,请确保您拥有以下权限:
cloudsql.blueGreenDeployments.getcloudsql.blueGreenDeployments.list
如需连接到绿色临时实例并运行测试查询,您还需要在源实例上配置数据库用户凭据。
如需详细了解 Cloud SQL 中的 IAM 角色和权限,请参阅角色和权限。
概览
借助 describe 命令,您可以在 Cloud SQL 蓝绿部署的整个生命周期(从初始配置和暂存到切换完成)中随时监控和跟踪其状态。
描述蓝绿部署可让您了解以下信息:
- 部署生命周期状态:监控部署在
PROVISIONING、SWITCHOVER_READY、SWITCHOVER_NOT_READY、SWITCHOVER_IN_PROGRESS和SWITCHOVER_COMPLETED等状态之间转换时的实时状态。 - 目标实例连接详细信息:检索绿色过渡实例的唯一连接名称和网络端点。这样一来,数据库管理员 (DBA) 和质量检查工程师就可以连接应用、运行测试查询,并验证绿色实例的性能,而不会影响蓝色生产环境中的实时流量。
- 复制健康状况和切换就绪情况:验证从蓝色到绿色的持续逻辑复制是否正常,并在出现问题时检查诊断错误详细信息。请注意,描述部署不会显示复制延迟。
- 配置差异:如果请求使用详细视图,请检查蓝色实例和绿色实例之间的数据库版本、机器层级、存储设置和高可用性配置的对照比较 (
diffs)。
列出蓝绿部署
如需列出项目中的蓝绿部署,请执行以下操作:
控制台
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
- 在实例列表中,查看蓝绿部署 ID 列,了解与您的实例关联的蓝绿部署。属于蓝绿部署的实例也会在实例名称旁边显示角色标记(蓝色、绿色、旧蓝色或新蓝色)。
gcloud
如需使用 gcloud 列出蓝绿部署,请运行 blue-green-deployments list 命令:
gcloud beta sql blue-green-deployments list \ --region=REGION
如需列出项目在所有区域中的部署,请省略 --region 标志。
REST v1
如需使用 Cloud SQL Admin API 列出部署,请向 blueGreenDeployments.list 方法发送 GET 请求:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/ locations/REGION/blueGreenDeployments
REST v1beta4
如需使用 Cloud SQL Admin API 列出部署,请向 blueGreenDeployments.list 方法发送 GET 请求:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/ locations/REGION/blueGreenDeployments
描述蓝绿部署
如需检查部署状态并获取绿色实例连接详细信息,请描述部署:
控制台
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
- 如需打开部署概览页面,请执行以下操作之一:
- 在蓝绿部署 ID 列中,点击部署 ID。
- 点击实例名称以打开概览页面,然后在蓝绿部署状态卡片中点击详情。
- 在部署概览页面上,查看部署详情卡片,检查部署状态、源实例、目标实例、目标实例端点和目标版本,并查看部署进度卡片,检查任务状态。
gcloud
如需使用 gcloud 描述部署,请运行 blue-green-deployments describe 命令:
gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \ --region=REGION
替换以下内容:
- DEPLOYMENT_NAME:蓝绿部署的名称。
- REGION:创建部署的 Google Cloud 区域。
REST v1
如需使用 Cloud SQL Admin API 描述部署,请向 blueGreenDeployments.get 方法发送 GET 请求:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
REST v1beta4
如需使用 Cloud SQL Admin API 描述部署,请向 blueGreenDeployments.get 方法发送 GET 请求:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
检查状态和连接详细信息
在命令输出中,验证部署状态并找到目标绿色实例的连接信息:
name: projects/my-project/locations/us-central1/ blueGreenDeployments/my-deployment createTime: '2026-08-13T10:00:00.000Z' state: SWITCHOVER_READY sourceInstance: my-source-instance switchoverTargetInstance: my-target-instance requestedConfig: databaseVersion: MYSQL_8_4 deploymentMappings: - source: connection: my-project:us-central1:my-source-instance dns: my-source-instance.123456789012.us-central1.sql.goog. instance: projects/my-project/instances/my-source-instance ipAddresses: - ipAddress: 10.0.0.1 type: PRIMARY state: PROVISIONED target: connection: my-project:us-central1:my-target-instance dns: my-target-instance.123456789012.us-central1.sql.goog. instance: projects/my-project/instances/my-target-instance ipAddresses: - ipAddress: 10.0.0.2 type: PRIMARY tasks: - type: PROVISION state: SUCCEEDED startTime: '2026-08-13T10:00:00.000Z' endTime: '2026-08-13T10:15:00.000Z' deploymentTasks: - type: PROVISION state: SUCCEEDED startTime: '2026-08-13T10:00:00.000Z' endTime: '2026-08-13T10:15:00.000Z'
查看响应中的以下字段:
name:部署的完全限定资源路径,格式为projects/PROJECT_ID/locations/REGION/blueGreenDeployments/DEPLOYMENT_NAME。createTime:部署的创建时间戳。state:部署的总体生命周期状态:PROVISIONING:部署正在配置绿色环境并设置复制。SWITCHOVER_READY:预演已完成,逻辑复制运行正常,并且部署已准备好进行切换。在运行测试之前,请确认此状态。SWITCHOVER_NOT_READY:部署尚未准备好进行切换。如需问题排查,请查看errorDetail。SWITCHOVER_IN_PROGRESS:切换操作正在积极执行。SWITCHOVER_COMPLETED:切换已成功完成,绿色实例现在作为活跃的读写实例提供生产流量。DELETING:正在删除部署资源。
sourceInstance:原始蓝色生产实例的实例标识符。switchoverTargetInstance:在切换期间成为生产读取和写入实例的绿色临时实例的实例标识符。requestedConfig:创建时针对目标实例的配置,例如databaseVersion(用于主要版本升级)。errorDetail:诊断错误详情,用于说明为何切换尚未就绪,或为何配置或切换任务失败。deploymentMappings:部署中的源实例和目标实例配对列表。对于每对,请查看:source:蓝色实例的连接和网络详细信息,包括实例资源路径 (instance)、连接名称 (connection)、DNS 主机名 (dns) 和 IP 地址 (ipAddresses)。target:绿色实例的连接和网络详细信息。 使用目标connection名称或ipAddresses将预发布应用和测试套件连接到绿色环境。diffs:使用详细视图时,蓝色实例和绿色实例之间的配置差异。在预览期间,不会显示数据库标志更改。state:配对节点的操作状态(例如PROVISIONING、PROVISIONED、UPGRADING、UPGRADED、UPGRADE_FAILED、SWITCHOVER_IN_PROGRESS、SWITCHOVER_FAILED、SWITCHOVER_SUCCEEDED或DELETING)。tasks:在此节点上执行的部署任务的执行状态、开始时间、结束时间和错误详情。
deploymentTasks:所有节点上所有部署任务的整合列表,包括任务type(PROVISION、UPGRADE、SWITCHOVER、DELETE或POST_SWITCHOVER_OPERATIONS)、state(PENDING、RUNNING、SUCCEEDED或FAILED)、startTime、endTime和errorMessage。
查看配置差异
默认情况下,描述部署会返回包含核心元数据的基本视图。如需查看蓝色实例和绿色实例之间的配置差异,请在 Google Cloud 控制台中查看设置差异,或使用 gcloud CLI 或 Cloud SQL Admin API 请求详细视图:
控制台
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
- 如需打开实例的概览页面,请点击实例名称。
- 在蓝绿部署状态卡片中,点击详情以打开部署概览页面。
- 在 Deployment 详情卡片中,点击查看设置差异。
- 在实例设置差异对话框中,查看源实例和目标实例之间的比较结果,然后点击关闭。
gcloud
运行带有 --show-config-diff 标志的 blue-green-deployments describe 命令:
gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \ --region=REGION \ --show-config-diff
REST v1
向 blueGreenDeployments.get 方法发送包含 view=DETAILED 查询参数的 GET 请求:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME?view=DETAILED
REST v1beta4
向 blueGreenDeployments.get 方法发送包含 view=DETAILED 查询参数的 GET 请求:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME?view=DETAILED
查看配置差异
指定详细视图后,响应会在 deploymentMappings 下的每个配对节点内包含一个 diffs 部分:
deploymentMappings: - diffs: - field: database_version sourceValue: MYSQL_8_0 targetValue: MYSQL_8_4 - field: settings/tier sourceValue: db-custom-2-7680 targetValue: db-custom-4-15360 source: instance: projects/PROJECT_ID/instances/my-source-instance target: connection: PROJECT_ID:REGION:my-target-instance instance: projects/PROJECT_ID/instances/my-target-instance
diffs 部分重点介绍了源实例和目标实例在以下属性方面的差异:
database_version:蓝色实例与绿色实例上的数据库引擎版本。settings/tier:分配给实例的机器类型(vCPU 和内存)。edition:Cloud SQL 版本(Cloud SQL 企业版或 Cloud SQL 企业 Plus 版)。availability_type:高可用性 (HA) 配置(ZONAL或REGIONAL)。settings/data_disk_size_gb:存储容量(以 GB 为单位)。settings/data_disk_type:存储类型 (PD_SSD)。
在开始功能性工作负载测试之前,请确认列出的所有更改都符合您计划的部署规范。
连接并验证应用工作负载
使用绿色实例的唯一连接字符串将应用或客户端工具连接到该实例:
gcloud sql connect TARGET_INSTANCE_NAME --user=DB_USER
替换以下内容:
- TARGET_INSTANCE_NAME:目标绿色实例的名称。
- DB_USER:数据库用户名。
执行以下验证步骤:
- 运行集成测试:验证应用查询和存储过程是否在绿色实例上正常运行。
- 检查错误日志:检查 Cloud Logging 和 Cloud SQL 数据库错误日志,看看是否存在已弃用的语法警告或意外的引擎错误。
- 查看性能统计数据:监控绿色实例上的 CPU、内存和 I/O 指标,确保性能符合运维 SLO。