删除蓝绿部署

本文档介绍了如何删除 Cloud SQL 蓝绿部署,并详细说明了切换前后删除行为的关键区别。

准备工作

如需删除或取消蓝绿部署,请验证您是否拥有所需的角色和权限。

所需的角色和权限

如需获得删除蓝绿部署所需的权限,请让管理员向您授予项目的以下 IAM 角色:

  • Cloud SQL Admin (roles/cloudsql.admin)

对于自定义角色,请确保您拥有以下权限:

  • cloudsql.blueGreenDeployments.delete
  • cloudsql.blueGreenDeployments.get
  • cloudsql.instances.delete
  • cloudsql.operations.get

如需详细了解 Cloud SQL 中的 IAM 角色和权限,请参阅角色和权限。

了解删除行为

delete 操作的行为因是否发生切换而异:

部署阶段 默认行为 实例影响
切换前
(取消)
删除部署元数据,并自动删除绿色临时实例。 您的蓝色生产实例将继续运行,并且完全不受影响。
切换后
(删除)
删除部署元数据,但默认情况下保留两个实例作为独立实例。 绿色实例会继续作为活跃的读写数据库实例处理生产流量。除非您选择删除旧的源实例选项、传递可选的 --delete-old-source 标志或将 deleteOldSource 参数设置为 true 以删除蓝色实例,否则该实例会保留为独立的读写实例。

情形 1:在切换前取消部署

如果您在验证期间检测到问题,或者决定不继续升级,请在触发切换之前删除部署。

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 在蓝绿部署状态卡片中,点击详情以打开部署概览页面。
  4. 点击删除部署。
  5. 在删除部署?对话框中,在部署 ID 字段中输入部署 ID 以进行确认。
  6. 点击删除。

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:切换后删除

成功切换并经过验证窗口后,您可以删除部署以及之前的蓝色实例,以避免为两个实例付费。

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 在蓝绿部署状态卡片中,点击详情以打开部署概览页面。
  4. 点击删除部署。
  5. 在删除部署?对话框中,在部署 ID 字段中输入部署 ID 以进行确认。
  6. 选择是删除还是保留之前的蓝色实例:
    • 选项 A(删除部署和之前的蓝色实例): 选中删除旧源实例复选框。
    • 选项 B(仅删除部署元数据):取消选中删除旧源实例复选框,以将之前的蓝色实例保留为独立实例。
  7. 点击删除。

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:蓝绿部署的名称。

此请求只会删除蓝绿部署元数据,使这两个实例都成为独立实例,直到您手动删除之前的蓝色实例为止。这两个实例在您的项目中仍处于有效状态,您需要继续为这两个实例付费。

后续步骤