本文档介绍了如何删除 Cloud SQL 蓝绿部署,并详细说明了切换前后删除行为的关键区别。
准备工作
如需删除或取消蓝绿部署,请验证您是否拥有所需的角色和权限。
所需的角色和权限
如需获得删除蓝绿部署所需的权限,请让管理员向您授予项目的以下 IAM 角色:
- Cloud SQL Admin (
roles/cloudsql.admin)
对于自定义角色,请确保您拥有以下权限:
cloudsql.blueGreenDeployments.deletecloudsql.blueGreenDeployments.getcloudsql.instances.deletecloudsql.operations.get
如需详细了解 Cloud SQL 中的 IAM 角色和权限,请参阅角色和权限。
了解删除行为
delete 操作的行为因是否发生切换而异:
| 部署阶段 | 默认行为 | 实例影响 |
|---|---|---|
| 切换前 (取消) |
删除部署元数据,并自动删除绿色临时实例。 | 您的蓝色生产实例将继续运行,并且完全不受影响。 |
| 切换后 (删除) |
删除部署元数据,但默认情况下保留两个实例作为独立实例。 | 绿色实例会继续作为活跃的读写数据库实例处理生产流量。除非您选择删除旧的源实例选项、传递可选的 --delete-old-source 标志或将 deleteOldSource 参数设置为 true 以删除蓝色实例,否则该实例会保留为独立的读写实例。 |
情形 1:在切换前取消部署
如果您在验证期间检测到问题,或者决定不继续升级,请在触发切换之前删除部署。
控制台
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
- 如需打开实例的概览页面,请点击实例名称。
- 在蓝绿部署状态卡片中,点击详情以打开部署概览页面。
- 点击删除部署。
- 在删除部署?对话框中,在部署 ID 字段中输入部署 ID 以进行确认。
- 点击删除。
gcloud
如需使用 gcloud 取消并删除蓝绿部署,请运行 blue-green-deployments delete 命令:
gcloud beta sql blue-green-deployments delete DEPLOYMENT_NAME \ --region=REGION
替换以下内容:
- DEPLOYMENT_NAME:蓝绿部署的名称。
- REGION:创建部署的 Google Cloud 区域。
REST v1
如需使用 Cloud SQL Admin API 取消并删除蓝绿部署,请向 blueGreenDeployments.delete 方法发送 DELETE 请求:
DELETE https://sqladmin.googleapis.com/v1/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- REGION:创建部署的 Google Cloud 区域。
- DEPLOYMENT_NAME:蓝绿部署的名称。
REST v1beta4
如需使用 Cloud SQL Admin API 取消并删除蓝绿部署,请向 blueGreenDeployments.delete 方法发送 DELETE 请求:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- REGION:创建部署的 Google Cloud 区域。
- DEPLOYMENT_NAME:蓝绿部署的名称。
这样一来,系统会移除绿色临时实例,并将环境恢复到原来的单实例状态,而不会造成停机。
情形 2:切换后删除
成功切换并经过验证窗口后,您可以删除部署以及之前的蓝色实例,以避免为两个实例付费。
控制台
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
- 如需打开实例的概览页面,请点击实例名称。
- 在蓝绿部署状态卡片中,点击详情以打开部署概览页面。
- 点击删除部署。
- 在删除部署?对话框中,在部署 ID 字段中输入部署 ID 以进行确认。
- 选择是删除还是保留之前的蓝色实例:
- 选项 A(删除部署和之前的蓝色实例): 选中删除旧源实例复选框。
- 选项 B(仅删除部署元数据):取消选中删除旧源实例复选框,以将之前的蓝色实例保留为独立实例。
- 点击删除。
gcloud
如需使用 gcloud 删除蓝绿部署,请运行 blue-green-deployments delete 命令。
选项 A:删除部署和之前的蓝色实例
如需删除部署元数据并自动删除之前的蓝色实例,请传递可选的 --delete-old-source 标志:
gcloud beta sql blue-green-deployments delete DEPLOYMENT_NAME \ --region=REGION \ --delete-old-source
替换以下内容:
- DEPLOYMENT_NAME:蓝绿部署的名称。
- REGION:创建部署的 Google Cloud 区域。
出现提示后,确认您要永久删除之前的蓝色实例。
选项 B:仅删除部署元数据(保留之前的蓝色实例)
如果您想让之前的蓝色实例作为独立实例(例如,作为备份或用于历史分析查询)继续运行,请省略可选的 --delete-old-source 标志:
gcloud beta sql blue-green-deployments delete DEPLOYMENT_NAME \ --region=REGION
替换以下内容:
- DEPLOYMENT_NAME:蓝绿部署的名称。
- REGION:创建部署的 Google Cloud 区域。
此命令只会删除蓝绿部署元数据,使两个实例都成为独立实例,直到您手动删除之前的蓝色实例。这两个实例在您的项目中仍处于有效状态,您需要继续为这两个实例付费。
REST v1
如需使用 Cloud SQL Admin API 删除蓝绿部署,请向 blueGreenDeployments.delete 方法发送 DELETE 请求。
选项 A:删除部署和之前的蓝色实例
如需删除部署元数据并自动删除之前的蓝色实例,请将 deleteOldSource 查询参数设置为 true:
DELETE https://sqladmin.googleapis.com/v1/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME?deleteOldSource=true
替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- REGION:创建部署的 Google Cloud 区域。
- DEPLOYMENT_NAME:蓝绿部署的名称。
选项 B:仅删除部署元数据(保留之前的蓝色实例)
如果您想让之前的蓝色实例作为独立实例(例如,作为备份或用于历史分析查询)继续运行,请省略 deleteOldSource 查询参数:
DELETE https://sqladmin.googleapis.com/v1/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- REGION:创建部署的 Google Cloud 区域。
- DEPLOYMENT_NAME:蓝绿部署的名称。
此请求只会删除蓝绿部署元数据,使这两个实例都成为独立实例,直到您手动删除之前的蓝色实例为止。这两个实例在您的项目中仍处于有效状态,您需要继续为这两个实例付费。
REST v1beta4
如需使用 Cloud SQL Admin API 删除蓝绿部署,请向 blueGreenDeployments.delete 方法发送 DELETE 请求。
选项 A:删除部署和之前的蓝色实例
如需删除部署元数据并自动删除之前的蓝色实例,请将 deleteOldSource 查询参数设置为 true:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME?deleteOldSource=true
替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- REGION:创建部署的 Google Cloud 区域。
- DEPLOYMENT_NAME:蓝绿部署的名称。
选项 B:仅删除部署元数据(保留之前的蓝色实例)
如果您想让之前的蓝色实例作为独立实例(例如,作为备份或用于历史分析查询)继续运行,请省略 deleteOldSource 查询参数:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- REGION:创建部署的 Google Cloud 区域。
- DEPLOYMENT_NAME:蓝绿部署的名称。
此请求只会删除蓝绿部署元数据,使这两个实例都成为独立实例,直到您手动删除之前的蓝色实例为止。这两个实例在您的项目中仍处于有效状态,您需要继续为这两个实例付费。