1. 简介
Private Service Connect (PSC) 可简化安全私密地使用服务的方式。此模型允许服务使用方以私密方式连接到跨组织的服务提供方,从而无需使用虚拟私有云对等互连,大幅简化了网络架构。图 1 展示了 VPC 对等互连和 PSC 属性。
图 1. 
作为服务使用方,您可以灵活地选择如何将专用 IP 分配给服务,同时无需再为提供方 VPC 管理子网范围。现在,您只需使用服务连接,即可将所选的虚拟 IP 从 VPC 分配给此类服务。
在此 Codelab 中,您将构建一个全面的 Private Service Connect 架构,该架构演示了如何将 PSC 全局访问与 MongoDB Atlas 搭配使用。
全球访问权限允许客户端跨区域边界连接到 Private Service Connect (PSC)。这对于在多个区域托管的托管式服务之间实现高可用性,或允许客户端访问与其不在同一区域的服务非常有用。
2. 启用全球访问权限
全球访问权限是一项可选功能,可在消费者端转发规则上进行配置。以下命令展示了如何配置该功能:
gcloud beta compute forwarding-rules create psc-west \
--region=us-west1 \
--network=consumer-vpc \
--address=psc-west-address \
--target-service-attachment=projects/.../serviceAttachments/sa-west \
--allow-psc-global-access
--allow-psc-global-access标志用于在 Private Service Connect 端点上启用全球访问权限- 借助全球访问权限,客户端可以位于与 Private Service Connect 转发规则不同的区域,但转发规则仍必须与所连接的服务连接位于同一区域。
- 无需在提供方的服务附件上进行任何配置即可启用全球访问权限。这纯粹是一个使用方选项。
您还可以随时为现有端点开启或关闭全球访问权限。在现有端点上启用全球访问权限时,活跃连接不会发生流量中断。使用以下命令在现有转发规则上启用全球访问:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
停用全球访问权限
您还可以使用 --no-allow-psc-global-access 标志停用现有转发规则的全球访问权限。请注意,运行此命令后,所有有效的跨区域流量都将终止。
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. 构建内容
- 系统将创建一个多区域 MongoDB Atlas 集群(拓扑如图 2 所示),其中一个节点位于 us-west1 区域,另外两个节点位于 us-west2 区域。
- 一个使用方 VPC 和关联的虚拟机,用于访问 us-west1 和 us-west2 中的 MongoDB 集群。
- 一个 VPC,以及分别位于 us-west1 和 us-west2 区域中的两个子网,每个子网中至少有 64 个空闲 IP 地址(创建子网时使用 /26 及更小的网络)。
MongoDB 客户端将安装在使用方 VPC 中的 vm1 上。当 us-west1 中的主节点发生故障时,客户端将能够通过 us-west2 中的新主节点进行读/写。
图 2. 
学习内容
- 如何创建部署在两个区域中的 VPC 和子网
- 如何部署多区域 MongoDB Atlas 集群
- 如何创建专用端点
- 如何连接到 MongoDB
- 如何执行和验证多区域 MongoDB 故障切换
所需条件
- Google Cloud 项目
- 每个区域提供一个 /26 子网
- 项目所有者或组织所有者对 MongoDB Atlas 的访问权限,以便创建集群层级为 M10 或更高级别的 MongoDB 集群。(请使用 GETATLAS 获取运行 PoV 的免费赠金)
4. 准备工作
更新项目以支持 Codelab
此 Codelab 使用了 $variables 来帮助在 Cloud Shell 中实现 gcloud 配置。
在 Cloud Shell 中,执行以下操作:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. 使用方设置
创建使用方 VPC
在 Cloud Shell 中,执行以下操作:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
创建使用方子网
在 Cloud Shell 中,执行以下操作:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
在 Cloud Shell 中,为 us-west1 创建使用方端点:
gcloud compute networks subnets create psc-endpoint-us-west1 --project=$projectname --range=192.168.10.0/26 --network=consumer-vpc --region=us-west1
在 Cloud Shell 中,为 us-west2 创建使用方端点:
gcloud compute networks subnets create psc-endpoint-us-west2 --project=$projectname --range=172.16.10.0/26 --network=consumer-vpc --region=us-west2
Cloud Router 和 NAT 配置
由于虚拟机实例没有外部 IP 地址,因此在 Codelab 中使用了 Cloud NAT 来安装软件包。
在 Cloud Shell 中,创建 Cloud Router 路由器。
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
在 Cloud Shell 中,创建 NAT 网关。
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
实例 vm1 配置
在下一部分中,您将创建 Compute Engine 实例 vm1。
在 Cloud Shell 中,创建实例 vm1。
gcloud compute instances create vm1 \
--project=$projectname \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=subnet=vm-subnet,no-address \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--create-disk=auto-delete=yes,boot=yes,device-name=vm1,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230213,mode=rw,size=10,type=projects/$projectname/zones/us-west1-a/diskTypes/pd-balanced
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
如需允许 IAP 连接到您的虚拟机实例,请创建一个防火墙规则,该规则应:
- 适用于您希望使用 IAP 可访问的所有虚拟机实例。
- 允许来自 IP 范围 35.235.240.0/20 的入站流量。此范围包含 IAP 用于 TCP 转发的所有 IP 地址。
在 Cloud Shell 中,创建 IAP 防火墙规则。
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. 创建多区域 MongoDB Atlas 集群
- 在开始设置 PSC 之前,我们需要先设置一个 Atlas 集群。您可以通过以下两种方式之一订阅 MongoDB Atlas:
- 如果您有 Google Cloud 账号,可以通过 Google Cloud Marketplace 购买。如需设置订阅,请参阅文档。
- 通过 Atlas 注册页面。
- 订阅 Atlas 后,点击“构建数据库”按钮,如下所示。

- 创建新集群 → 专用

- 云服务提供商和区域 → Google Cloud
- 多云、多区域和工作负载隔离 → 已选择(蓝色对勾标记)

- 可选举的节点 → us-west1(1 个节点)、us-west2(2 个节点)

- 集群层级 → M10,所有其他设置均保留默认值

- 集群名称 → psc-mongodb-uswest1-uswest2

- 依次选择 → 创建集群

- 创建数据库需要 7-10 分钟

部署后的集群视图

7. 为 us-west1 创建专用端点
- 登录您的 Atlas 账号,然后前往您的项目。
创建新用户以允许对任何数据库进行读写访问
依次选择“安全性”→“数据库访问权限”,然后选择“添加新数据库用户”。以下是一个示例,其中用户名和密码配置为 codelab。请务必选择内置角色“读取和写入任何数据库”。

- 在“安全性”→“网络访问”下,“IP 访问列表”不需要条目
在 MongoDB Atlas 中准备专用端点
- 依次选择“网络访问”→“专用端点”→“专用集群”→“添加专用端点”图标

云服务提供商
- 选择 Google Cloud,然后点击“下一步”

服务连接
- 选择区域 us-west1,然后点击“下一步”

Endpoints
- 如需创建 Private Service Connect 端点,请提供以下信息:
- Google Cloud 云项目 ID:选择“显示说明”了解详情
- VPC 名称:consumer-vpc
- 子网名称:psc-endpoint-us-west1
- Private Service Connect 端点前缀:psc-endpoint-us-west1

设置端点
在以下部分中,系统会生成一个应保存到本地的 shell 脚本,并将其命名为 setup_psc.sh。保存后,修改 shell 脚本以允许 PSC 全球访问。您可以在 Google Cloud 云项目 Cloud Shell 中执行此操作。
- 示例 shell 脚本,您的输出将具有不同的值

- 从 MongoDB 控制台复制 shell 脚本,并将内容保存到 Google Cloud Cloud Shell 终端中,确保将脚本另存为 setup_psc.sh
更新前的示例:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
更新了 shell 脚本以支持全局访问权限
使用 nano 或 vi 编辑器查找并更新 shell 脚本,使其包含以下语法:
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
更新后的示例:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
运行 shell 脚本
找到并执行脚本 setup_psc.sh,完成后会创建一个名为 atlasEndpoints-psc-endpoint-us-west1.json 的文件。该 JSON 文件包含部署的下一步所需的 IP 地址和 Private Service Connect 端点名称列表。
在 Cloud Shell 中,执行以下操作:
sh setup_psc.sh
脚本完成后,使用 Cloud Shell 编辑器将 atlasEndpoints-psc-endpoint-us-west1.json 下载到本地。

上传 JSON 文件
上传之前保存的 JSON 文件 atlasEndpoints-psc-endpoint-us-west1.json


选择“创建”
验证 Private Service Connect 端点
在 MongoDB 界面中,依次前往您的项目、安全 → 网络访问权限 → 私有端点。选择专用集群标签页后,端点转换为可用状态需要 10 分钟。
可用状态

在 Google Cloud 控制台中,依次前往“网络服务”→“Private Service Connect”,然后选择“已连接的端点”标签页,该标签页会显示从“待处理”过渡到“已接受”的使用方端点,示例如下:

8. 为 us-west2 创建专用端点
- 登录您的 Atlas 账号,然后前往您的项目。
在 MongoDB Atlas 中准备专用端点
- 依次选择“网络访问”→“专用端点”→“专用集群”→“添加专用端点”图标

云服务提供商
- 选择 Google Cloud,然后点击“下一步”

服务连接
- 选择区域 us-west2,然后点击“下一步”

Endpoints
- 如需创建 Private Service Connect 端点,请提供以下信息:
- Google Cloud 云项目 ID:选择“显示说明”了解详情
- VPC 名称:consumer-vpc
- 子网名称:psc-endpoint-us-west2
- Private Service Connect 端点前缀:psc-endpoint-us-west2

设置端点
在以下部分中,系统会生成一个应保存到本地的 shell 脚本,并将其命名为 setup_psc.sh。保存后,修改 shell 脚本以允许 PSC 全球访问。您可以在 Google Cloud 云项目 Cloud Shell 中执行此操作。
- 示例 shell 脚本,您的输出将具有不同的值

- 从 MongoDB 控制台复制 shell 脚本,并将内容保存到 Google Cloud Cloud Shell 终端中,确保将脚本另存为 setup_psc.sh
更新前的示例:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
更新了 shell 脚本以支持全局访问权限
使用 nano 或 vi 编辑器查找并更新 shell 脚本,使其包含以下语法:
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
更新后的示例:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
运行 shell 脚本
找到并执行脚本 setup_psc.sh,完成后会创建一个名为 atlasEndpoints-psc-endpoint-us-west2.json 的文件。该 JSON 文件包含部署的下一步所需的 IP 地址和 Private Service Connect 端点名称列表。
在 Cloud Shell 中,执行以下操作:
sh setup_psc.sh
脚本完成后,使用 Cloud Shell 编辑器将 atlasEndpoints-psc-endpoint-us-west2.json 下载到本地。

上传 JSON 文件
上传之前保存的 JSON 文件 atlasEndpoints-psc-endpoint-us-west2.json


选择“创建”
验证 Private Service Connect 端点
在 MongoDB 界面中,依次前往您的项目、安全 → 网络访问权限 → 私有端点。选择专用集群标签页后,端点会在 10 分钟后转换为可用状态。
可用状态:

在 Google Cloud 控制台中,依次前往“网络服务”→“Private Service Connect”,然后选择“已连接的端点”标签页,该标签页会显示从“待处理”过渡到“已接受”的使用方端点,如下例所示。使用方端点中总共部署了 100 个端点,这些端点需要先转换为“已接受”,然后才能进入下一步。

9. 通过专用端点连接到 MongoDB Atlas
Private Service Connect 连接获得接受后,还需要额外的时间(10-15 分钟)来更新 MongoDB 集群。在 MongoDB 界面中,灰色轮廓表示集群正在更新,因此无法连接到专用端点。

找到相应部署,然后选择“连接”(请注意,灰色框不再显示)

选择连接类型 → 私有端点,然后选择“选择连接方法”

选择“使用 MongoDB Shell 连接”

选择“我未安装 MongoDB Shell,Ubuntu 20.4”,并确保将第 1 步和第 3 步中的内容复制到记事本中。

10. 安装 mongosh 应用
在安装之前,您需要根据之前在第 1 步和第 3 步中复制的值创建命令字符串。之后,您将使用 Cloud Shell 通过 SSH 连接到 vm1,然后安装 mongosh 应用并验证主 (us-west1) 数据库。在 consumer-vpc 中创建 vm1 时,安装了 Ubuntu 20.4 映像。
选择连接方法:第 1 步,复制下载网址

示例命令字符串,请替换为您的自定义值:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
选择连接方法,第 3 步。

示例命令字符串,请替换为您的自定义值:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
登录到 vm1
在 Cloud Shell 中,执行以下操作:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
在 Cloud Shell 中使用 IAP 登录到 vm1,如果超时,请重试。
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
从操作系统执行安装
从 Cloud Shell 操作系统登录会话执行安装,详细信息请参阅此处,使用您的自定义字符串更新以下语法
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
操作应使用
OK
。
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update -y
wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
sudo dpkg -i mongodb-mongosh_1.7.1_amd64.deb
连接到 MongoDB 部署
在 Cloud Shell 操作系统登录会话中,执行以下操作。配置的用户名和密码为 Codelab。
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
示例如下:

针对数据库执行命令
在 Cloud Shell 操作系统登录会话中,执行以下操作。
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. 故障切换活动 MongoDB 区域 (us-west1)
在执行故障切换之前,我们先验证 us-west1 是否为主可用区,以及 us-west2 是否有两个辅助节点。
依次前往“数据库”→“psc-mongodb-uswest1-uswest2”→“概览”

在以下部分中,登录位于 us-west1 中的虚拟机 vm1,对主 MongoDB 集群区域 us-west1 进行故障切换,并验证是否仍可从 us-west2 中的 MongoDB 集群访问数据库。
您可以在 Atlas 界面中测试主故障切换和区域故障切换。
- 登录 Atlas 界面。
- 依次点击集群名称旁边的 [...]、psc-mongodb-uswest1-uswest2 → Test Outage。

- 选择“区域性中断”→ 选择区域。

- 选择主要区域 us-west1→ 模拟区域中断。

选择集群后,系统会在 3-4 分钟后显示中断模拟
关闭窗口


验证 us-west1 是否已关闭,以及 us-west2 是否已接管并成为主区域
依次前往“数据库”→“psc-mongodb-uswest1-uswest2”→“概览”

验证新主集群 (us-west2) 的连接
登录位于 us-west1 中的 vm1,并访问位于 us-west2 中的 mongodb,以验证 Private Service Connect 全局访问权限。
如果 Cloud Shell 会话已终止,请执行以下操作:
在 Cloud Shell 中,执行以下操作:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
在 Cloud Shell 中使用 IAP 登录到 vm1,如果超时,请重试。
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
连接到 MongoDB 部署
在 Cloud Shell 操作系统登录会话中,执行以下操作。
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
示例如下:

针对数据库执行命令
在 Cloud Shell 操作系统登录会话中,执行以下操作。
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit

成功:您已验证 PSC 全球访问权限可实现跨区域的无缝使用方端点连接,从而有助于实现高可用性或应对区域性服务中断。在此 Codelab 中,位于 us-west1 的主节点中发生了 MongoDB 区域性故障切换,因此次要区域 us-west2 接管了主节点。虽然集群导致了区域性服务中断,但位于 us-west1 中的消费者虚拟机 vm1 成功访问了 us-west2 中的新主集群。
12. 清理
从 Cloud 控制台中删除使用方端点
依次前往“网络服务”→“Private Service Connect”→“已连接的端点”
使用 psc-endpoint 过滤条件可避免意外删除非实验性消费者端点。选择所有端点 → 删除

删除与使用方端点关联的静态内部 IP 地址
依次前往 VPC 网络 → consumer-vpc → 静态内部 IP 地址
使用过滤器 psc-endpoint 避免可能删除非实验室消费者端点的情况,并将每页的行数增加到 100。选择所有端点 → RELEASE

在 Cloud Shell 中,删除 Codelab 组件。
gcloud compute instances delete vm1 --zone=us-west1-a --quiet
gcloud compute networks subnets delete psc-endpoint-us-west1 vm-subnet --region=us-west1 --quiet
gcloud compute networks subnets delete psc-endpoint-us-west2 --region=us-west2 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --quiet
gcloud compute routers delete consumer-cr --region=us-west1 --quiet
gcloud compute networks delete consumer-vpc --quiet
在 Atlas 界面中,找到集群 psc-mongodb-uswest1-uswest2 → 结束模拟

选择“结束中断模拟”>“退出”

集群现在正在将 us-west1 恢复为主区域,此过程将需要 3-4 分钟。完成后,终止集群,注意灰色轮廓表示状态已发生变化。


插入集群名称 → 终止

删除与 us-west1 和 us-west2 关联的专用端点
在 Atlas 界面中,依次前往“Security”(安全性)→“Network Access”(网络访问权限)→“Private Endpoint”(专用端点)→ 选择“Terminate”(终止)

13. 恭喜
恭喜!您已成功配置并验证了 Private Service Connect 端点,该端点具有全球访问权限,可跨区域访问 MongoDB。您已成功创建了使用方 VPC、多区域 MongoDB 和使用方端点。在区域故障切换后,位于 us-west1 中的虚拟机成功连接到 us-west1 和 us-west2 中的 MongoDB。
Cosmopup 认为 Codelab 非常棒!

后续操作
查看下列 Codelab…
- 使用 Private Service Connect 通过 GKE 发布和使用服务
- 使用 Private Service Connect 发布和使用服务
- 使用 Private Service Connect 和内部 TCP 代理负载平衡器通过混合网络连接到本地服务
- 使用采用自动 DNS 配置的 Private Service Connect