使用用户注册的连接设置多个 VPC 网络

本页面介绍了如何为多个虚拟私有云 (VPC) 网络和一个新的 Memorystore for Redis 集群实例设置连接。为此,请执行以下操作:

  • 在使用方网络中创建 Private Service Connect 端点。

  • 以 Memorystore 实例的服务连接为目标。

  • 向实例注册组件。

完成这些任务后,您可以通过创建的 Private Service Connect 连接将客户端连接到实例。

如需了解如何为已有一些自动注册的 Private Service Connect 连接的实例设置多个 VPC 网络,请参阅为已预配自动注册连接的实例设置多个 VPC 网络

如需详细了解多 VPC 网络设置,请参阅关于多 VPC 网络

显示网络架构的图表。它有两个客户 VPC 网络,分别位于两个项目中,这两个网络都连接到 Private Service Connect 连接,而该连接又连接到 Memorystore 服务连接。

关键步骤摘要

本部分简要列出了本教程中设置 Private Service Connect 连接的关键步骤。首先,您应完成准备工作部分中的步骤,为学习本教程做好准备。

关键步骤

  1. 第 1 步:创建实例
  2. 第 2 步:记下服务附件路径
  3. 第 3 步:为第一个 VPC 网络设置并注册 Private Service Connect 连接
  4. 第 4 步:为第二个 VPC 网络设置并注册 Private Service Connect 连接
  5. 第 5 步:设置客户端连接

此外,您还可以:

准备工作

在开始之前,请确保您拥有以下 IAM 角色和 Google Cloud 资源。

所需 IAM 角色

资源 ID 示例 资源类型
roles/redis.admin 可以完全控制 Memorystore for Redis Cluster 实例,并控制实例的整个生命周期。
roles/servicedirectory.editor 授予您修改 Service Directory 资源的权限。创建 Private Service Connect 端点需要此角色。
roles/compute.networkAdmin 授予对 VPC 网络的完整控制权限来启动与 Memorystore 实例的连接。您可以创建和管理 IP 地址、防火墙规则和 Private Service Connect 端点。创建 Private Service Connect 端点需要此角色。

如果您使用 Private Service Connect 从多个 VPC 网络连接到 Memorystore 实例,则每个网络可能都有自己的管理员。

前提资源

在开始本教程之前,您需要创建以下资源。我们建议您使用以下 ID 和位置创建资源,但您也可以选择自己的 ID 和位置。在本教程中,您将使用以下资源在 VPC 网络 1 中设置两个 Private Service Connect 连接:

资源 ID 示例 资源类型 完整路径示例 说明
my-project-1 Google Cloud 项目 您的 Memorystore 实例位于此项目中
my-network-1 VPC 网络 projects/my-project-1/global/networks/my-network-1 在本教程中,您将在此网络中设置 2 个 Private Service Connect 连接
my-subnet-1 VPC 子网 projects/my-project-1/regions/us-central1/subnetworks/my-subnet-1 在本教程中,您将在此子网中预留 2 个 IP 地址

在本教程中,您将使用以下资源在 VPC 网络 2 中创建两个 Private Service Connect 连接:

资源 ID 示例 资源类型 完整路径示例 说明
my-project-2 Google Cloud 项目 在本教程中,这是您创建第二个网络和第二个子网的项目。不过,如果您愿意,第二个网络和子网可以与第一个网络位于同一项目中。
my-network-2 VPC 网络 projects/my-project-2/global/networks/my-network-2 在本教程中,您将在此网络中创建 2 个 Private Service Connect 端点
my-subnet-2 VPC 子网 projects/my-project-2/regions/us-central1/subnetworks/my-subnet-2 在本教程中,您将在此子网中预留 2 个 IP 地址

启用 API

启用以下 API,以便管理 Compute Engine 网络、Memorystore for Redis 集群和 Private Service Connect 资源。

gcloud

如需在项目 1 和项目 2 中启用 API,请运行以下命令:

gcloud services enable --project=PROJECT_1_ID compute.googleapis.com
gcloud services enable --project=PROJECT_2_ID compute.googleapis.com
gcloud services enable --project=PROJECT_1_ID redis.googleapis.com
gcloud services enable --project=PROJECT_2_ID redis.googleapis.com
gcloud services enable --project=PROJECT_1_ID servicedirectory.googleapis.com
gcloud services enable --project=PROJECT_2_ID servicedirectory.googleapis.com

第 1 步:创建实例

本指南介绍了如何为没有自动注册的 Private Service Connect 连接的 Memorystore 实例设置连接。可以有服务连接政策,但如果遵循用户注册 Private Service Connect 连接的流程,则不需要服务连接政策。

如需避免自动创建和注册 Private Service Connect 连接,请运行不指定网络的创建命令,如以下示例所示。

gcloud

如需创建实例而不自动创建任何 Private Service Connect 连接,请运行 gcloud redis cluster create 命令,但不要使用 --network 参数,如下所示:

gcloud redis clusters create INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT

替换以下内容:

  • INSTANCE_ID 是您要创建的 Memorystore for Redis Cluster 实例的 ID。实例 ID 的长度必须为 1 到 63 个字符,且只能使用小写字母、数字或连字符。并且必须以小写字母开头并以小写字母或数字结尾。

  • REGION_ID 是您要将实例放置在其中的区域。

  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。

  • REPLICA_COUNT 是您选择的副本数量(每个分片)。接受的值包括 012

  • NODE_TYPE 是您选择的节点类型。接受的值包括:

    • redis-shared-core-nano

    • redis-standard-small

    • redis-highmem-medium

    • redis-highmem-xlarge

  • SHARD_COUNT 用于确定实例中的分片数量。分片数决定了用于存储集群数据的总内存容量。如需详细了解集群规范,请参阅集群和节点规范

例如:

gcloud redis clusters create my-instance \
--region=us-central1 \
--replica-count=2 \
--node-type=redis-highmem-medium \
--shard-count=8

第 2 步:记下服务附件路径

创建 Memorystore 实例后,记下该实例的两个服务连接 URI。您可以使用这些服务连接 URI 来设置 Private Service Connect 连接。

gcloud

如需查看启用了 Private Service Connect 的实例的摘要信息,请查找 pscServiceAttachments 字段。此字段显示指向实例的服务连接的两个 URI。如需查看此信息,请使用 gcloud redis clusters describe 命令:

gcloud redis clusters describe INSTANCE_ID --project=PROJECT_1_ID --region=REGION_ID

替换以下内容:

  • INSTANCE_ID 是您的 Memorystore 实例的名称。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。
  • REGION_ID 是实例所在区域的 ID。

以下示例展示了此命令的示例输出:

gcloud redis clusters describe my-instance \
--project=my-project-1 --region=us-central1

...

pscServiceAttachments:
- connectionType: CONNECTION_TYPE_DISCOVERY
  serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
- serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2

第 3 步:为第一个 VPC 网络设置并注册 Private Service Connect 连接

本部分介绍了如何设置第一个 VPC 网络所需的两个连接。您必须针对要设置连接的每个 VPC 重复此流程。例如,在本教程的后面部分,您会发现这些步骤再次重复出现,但这次是针对第二个 VPC 网络所需的新连接。

为网络 1 创建 Private Service Connect 端点

本部分将介绍您需要采取哪些操作才能在网络 1 中创建 2 个 Private Service Connect 端点。

为网络 1 预留 IP 地址

接下来,在网络 1 中预留两个 IP 地址。

预留 IP 地址 1

gcloud

如需预留 IP 地址 1,请运行 gcloud compute addresses create 命令:

gcloud compute addresses create IP_ADDRESS_1_ID \
--project=PROJECT_1_ID \
--addresses=IP_ADDRESS_1 \
--region=REGION_ID \
--subnet=projects/PROJECT_1_ID/regions/REGION_ID/subnetworks/SUBNET_1_ID \
--purpose=GCE_ENDPOINT

替换以下内容:

  • IP_ADDRESS_1_ID 是您为 IP 地址指定的 ID。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。
  • IP_ADDRESS_1 是您从 前提条件资源中预留的 SUBNET_1_ID 范围内选择的 IP 地址。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SUBNET_1_ID 是您在项目 1 的网络 1 上预留的子网的 ID,作为前提条件资源的一部分。

例如:

gcloud compute addresses create my-ip-address-1 \
--project=my-project-1 \
--addresses=10.2.5.9 \
--region=us-central1 \
--subnet=projects/my-project-1/regions/us-central1/subnetworks/my-subnet-1 \
--purpose=GCE_ENDPOINT
预留 IP 地址 2

gcloud

如需预留 IP 地址 2,请运行 gcloud compute addresses create 命令:

gcloud compute addresses create IP_ADDRESS_2_ID \
--project=PROJECT_1_ID \
--addresses=IP_ADDRESS_2 \
--region=REGION_ID \
--subnet=projects/PROJECT_1_ID/regions/REGION_ID/subnetworks/SUBNET_1_ID \
--purpose=GCE_ENDPOINT

替换以下内容:

  • IP_ADDRESS_2_ID 是您为 IP 地址指定的 ID。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。
  • IP_ADDRESS_2 是您从 前提条件资源中预留的 SUBNET_1_ID 范围内选择的 IP 地址。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SUBNET_1_ID 是您在项目 1 的网络 1 上预留的子网的 ID,属于前提条件资源

为网络 1 添加转发规则

接下来,创建将 IP 地址连接到 Memorystore 实例的服务连接的转发规则。

为 IP 1 添加转发规则 1

gcloud

如需为 IP 1 添加转发规则,请运行 gcloud compute forwarding-rules create 命令:

gcloud compute forwarding-rules create FORWARDING_RULE_1_NAME \
--address=IP_ADDRESS_1_ID \
--network=projects/PROJECT_1_ID/global/networks/NETWORK_1_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_1 \
--project=PROJECT_1_ID \
--allow-psc-global-access

替换以下内容:

  • FORWARDING_RULE_1_NAME 是您为要创建的转发规则指定的名称。
  • IP_ADDRESS_1_ID 是您在预留 IP 地址部分中预留的 IP 地址的 ID。
  • NETWORK_1_ID 是第一个网络的 ID。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SERVICE_ATTACHMENT_1 是您在 CONNECTION_TYPE_DISCOVERY 字段后列出的记下服务连接路径中记下的服务连接。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。

例如:

gcloud compute forwarding-rules create my-forwarding-rule-1 \
--address=my-ip-address-1 \
--network=projects/my-project-1/global/networks/my-network-1 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa \
--project=my-project-1 \
--allow-psc-global-access
为 IP 2 添加转发规则 2

gcloud

如需为 IP 2 添加转发规则,请运行 gcloud compute forwarding-rules create 命令:

gcloud compute forwarding-rules create FORWARDING_RULE_2_NAME \
--address=IP_ADDRESS_2_ID \
--network=projects/PROJECT_1_ID/global/networks/NETWORK_1_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_2 \
--project=PROJECT_1_ID \
--allow-psc-global-access

替换以下内容:

  • FORWARDING_RULE_2_NAME 是您为要创建的转发规则指定的名称。
  • IP_ADDRESS_2_ID 是您在预留 IP 地址部分中预留的 IP 地址的 ID。
  • NETWORK_1_ID 是第一个网络的 ID。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SERVICE_ATTACHMENT_2 是您在记下服务连接路径中记下的第二个服务连接。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。

例如:

gcloud compute forwarding-rules create my-forwarding-rule-2 \
--address=my-ip-address-2 \
--network=projects/my-project-1/global/networks/my-network-1 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa-2 \
--project=my-project-1 \
--allow-psc-global-access

为网络 1 注册与 Memorystore 实例的 Private Service Connect 连接

本部分介绍了注册与 Memorystore 实例的连接的步骤。首先,您需要获取转发规则的连接 ID 和项目 ID。

然后,您需要向 Memorystore 实例注册 Private Service Connect 连接信息,以启用连接。

获取网络 1 的转发规则连接 ID 和项目 ID

接下来,获取每个转发规则的 pscConnectionId 值。记下这些值。

获取 Private Service Connect 连接 ID 1

gcloud

如需查看 pscConnectionId 值和其他转发规则摘要信息,请运行 gcloud compute forwarding-rules describe 命令:

gcloud compute forwarding-rules describe FORWARDING_RULE_1_NAME \
--project=PROJECT_1_ID \
--region=REGION_ID

替换以下内容:

  • FORWARDING_RULE_1_NAME 是第一个转发规则的名称。
  • PROJECT_1_ID 是包含转发规则的 Google Cloud 项目的 ID。

以下示例展示了此命令的示例输出:

gcloud compute forwarding-rules describe my-forwarding-rule-1 \
--project=my-project-1 \
--region=us-central1

...

pscConnectionId: '415109836469698'
获取 Private Service Connect 连接 ID 2

gcloud

如需查看 pscConnectionId 值和其他转发规则摘要信息,请运行 gcloud compute forwarding-rules describe 命令:

gcloud compute forwarding-rules describe FORWARDING_RULE_2_NAME \
--project=PROJECT_1_ID \
--region=REGION_ID

替换以下内容:

  • FORWARDING_RULE_2_NAME 是第二个转发规则的名称。
  • PROJECT_1_ID 是包含转发规则的 Google Cloud 项目的 ID。

为 VPC 网络 1 注册 Private Service Connect 连接信息

gcloud

如需注册每个连接,您需要提供 Private Service Connect 连接 ID、IP 地址、网络路径、转发规则路径/URI 和目标服务连接。为此,请运行 gcloud redis clusters add-cluster-endpoints 命令:

gcloud redis clusters add-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_1_ID","address":"IP_ADDRESS_1","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwarding-rule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_1_NAME","service-attachment":"SERVICE_ATTACHMENT_1"},{"psc-connection-id":"PSC_CONNECTION_2_ID","address":"IP_ADDRESS_2","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwarding-rule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_2_NAME","service-attachment":"SERVICE_ATTACHMENT_2"}]]'

替换以下内容:

  • INSTANCE_ID 是 Memorystore for Redis Cluster 实例的 ID。
  • REGION_ID 是 Memorystore 实例所在的区域的 ID。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。
  • PSC_CONNECTION_1_ID 是您在获取转发规则连接 ID 部分中记下的第一个 Private Service Connect 连接 ID。
  • IP_ADDRESS_1 是您预留的第一个 IP 地址。
  • NETWORK_1_ID 是网络 1 的 ID。
  • FORWARDING_RULE_1_NAME 是您创建的第一个转发规则的名称。
  • SERVICE_ATTACHMENT_1 是您的第一个与 FORWARDING RULE_1_NAME 关联的服务连接。
  • PSC_CONNECTION_2_ID 是您在获取转发规则连接 ID 时记下的第二个 Private Service Connect 连接 ID。
  • IP_ADDRESS_2 是您预留的第二个 IP 地址。
  • FORWARDING_RULE_2_NAME 是您创建的第二个转发规则的名称。
  • SERVICE_ATTACHMENT_2 是您的第二个服务附件,与 FORWARDING_RULE_2_NAME 相关联。

例如:

gcloud redis clusters add-cluster-endpoints my-instance \
--region=us-central-1 \
--project=my-project1 \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"41510983646969883","address":"10.2.5.9","network":"projects/my-project-1/global/networks/my-network-1","forwarding-rule":"projects/1048073346231/regions/us-central1/forwardingRules/my-forwarding-rule-1","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa"},{"psc-connection-id":"41510983646969234","address":"10.2.5.11","network":"projects/my-project-1/global/networks/my-network-1","forwarding-rule":"projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-2","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2"}]]'

第 4 步:为第二个 VPC 网络设置并注册 Private Service Connect 连接

本部分介绍了如何为第二个 VPC 网络设置所需的两个连接。

为网络 2 创建 Private Service Connect 端点

本部分说明了您需要执行哪些操作才能在网络 2 中创建 2 个端点。

为网络 2 预留 IP 地址

接下来,在网络 2 中预留 2 个 IP 地址。

预留 IP 地址 3

gcloud

如需预留 IP 地址 3,请运行 gcloud compute addresses create 命令:

gcloud compute addresses create IP_ADDRESS_3_ID \
--project=PROJECT_2_ID \
--addresses=IP_ADDRESS_3 \
--region=REGION_ID \
--subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \
--purpose=GCE_ENDPOINT

替换以下内容:

  • IP_ADDRESS_3_ID 是您为 IP 地址指定的 ID。
  • PROJECT_2_ID 是项目 2 的 ID。这是您创建第二个 VPC 网络和子网的项目。
  • IP_ADDRESS_3 是您从 前提条件资源中预留的 SUBNET_2_ID 范围内选择的 IP 地址。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SUBNET_2_ID 是您在项目 2 的网络 2 上预留的子网的 ID,作为前提条件资源的一部分。
预留 IP 地址 4

gcloud

如需预留 IP 地址 4,请运行 gcloud compute addresses create 命令:

gcloud compute addresses create IP_ADDRESS_4_ID \
--project=PROJECT_2_ID \
--addresses=IP_ADDRESS_4 \
--region=REGION_ID \
--subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \
--purpose=GCE_ENDPOINT

替换以下内容:

  • IP_ADDRESS_4_ID 是您为 IP 地址指定的 ID。
  • PROJECT_2_ID 是项目 2 的 ID。这是您创建第二个 VPC 网络和子网的项目。
  • IP_ADDRESS_4 是您从 前提条件资源中预留的 SUBNET_2_ID 范围内选择的 IP 地址。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SUBNET_2_ID 是您在项目 2 的网络 2 上预留的子网的 ID,作为前提条件资源的一部分。

为网络 2 添加转发规则

接下来,创建将 IP 地址连接到 Memorystore 实例的服务连接的转发规则。

为 IP 3 添加转发规则 3

gcloud

如需为 IP 3 添加转发规则,请运行 gcloud compute forwarding-rules create 命令:

gcloud compute forwarding-rules create FORWARDING_RULE_3_NAME \
--address=IP_ADDRESS_3_ID \
--network=projects/PROJECT_2_ID/global/networks/NETWORK_2_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_1 \
--project=PROJECT_2_ID \
--allow-psc-global-access

替换以下内容:

  • FORWARDING_RULE_3_NAME 是您为要创建的转发规则指定的名称。
  • IP_ADDRESS_3_ID 是您在预留 IP 地址部分中预留的 IP 地址的 ID。
  • NETWORK_2_ID 是您的第二个网络的 ID。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SERVICE_ATTACHMENT_1 是您在记下服务连接路径中记下的第一个服务连接。
  • PROJECT_2_ID 是您的第二个项目。

例如:

gcloud compute forwarding-rules create my-forwarding-rule-3 \
--address=my-ip-address-3 \
--network=projects/my-project-2/global/networks/my-network-2 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa \
--project=my-project-2 \
--allow-psc-global-access
为 IP 4 添加转发规则 4

gcloud

如需为 IP 4 添加转发规则,请运行 gcloud compute forwarding-rules create 命令:

gcloud compute forwarding-rules create FORWARDING_RULE_4_NAME \
--address=IP_ADDRESS_4_ID \
--network=projects/PROJECT_2_ID/global/networks/NETWORK_2_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_2 \
--project=PROJECT_2_ID \
--allow-psc-global-access

替换以下内容:

  • FORWARDING_RULE_4_NAME 是您为要创建的转发规则指定的名称。
  • IP_ADDRESS_4_ID 是您在预留 IP 地址部分中预留的 IP 地址的 ID。
  • NETWORK_2_ID 是您的第二个网络的 ID。
  • REGION_ID 是 Memorystore 实例所在的区域。
  • SERVICE_ATTACHMENT_2 是您在记下服务连接路径中记下的第二个服务连接。
  • PROJECT_2_ID 是您的第二个项目。

例如:

gcloud compute forwarding-rules create my-forwarding-rule-4 \
--address=my-ip-address-4 \
--network=projects/my-project-2/global/networks/my-network-2 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa-2 \
--project=my-project-2 \
--allow-psc-global-access

为网络 2 注册与 Memorystore 实例的 Private Service Connect 连接

本部分介绍了注册与 Memorystore 实例的连接的步骤。首先,您需要获取转发规则的连接 ID 和项目 ID。

然后,您需要向 Memorystore 实例注册 Private Service Connect 连接信息,以启用连接。

获取网络 2 的转发规则连接 ID 和项目 ID

接下来,获取每个转发规则的 pscConnectionId 值。记下这些值。

获取 Private Service Connect 连接 ID 3

gcloud

如需查看 pscConnectionId 值和其他转发规则摘要信息,请运行 gcloud compute forwarding-rules describe 命令:

gcloud compute forwarding-rules describe FORWARDING_RULE_3_NAME \
--project=PROJECT_2_ID \
--region=REGION_ID

替换以下内容:

  • FORWARDING_RULE_3_NAME 是第三个转发规则的名称。
  • PROJECT_2_ID 是包含转发规则的 Google Cloud 项目的 ID。

以下示例展示了此命令的示例输出:

gcloud compute forwarding-rules describe my-forwarding-rule-3 \
--project=my-project-2 \
--region=us-central1

...

pscConnectionId: '94710983646969729'
获取 Private Service Connect 连接 ID 4

gcloud

如需查看 pscConnectionId 值和其他转发规则摘要信息,请运行 gcloud compute forwarding-rules describe 命令:

gcloud compute forwarding-rules describe FORWARDING_RULE_4_NAME \
--project=PROJECT_2_ID \
--region=REGION_ID

替换以下内容:

  • FORWARDING_RULE_4_NAME 是您的第四条转发规则的名称。
  • PROJECT_2_ID 是包含转发规则的 Google Cloud 项目的 ID。

为 VPC 网络 2 注册 Private Service Connect 连接信息

gcloud

如需注册每个连接,您需要提供 Private Service Connect 连接 ID、IP 地址、网络路径、转发规则路径/URI 和目标服务连接。为此,请运行 gcloud redis clusters add-cluster-endpoints 命令:

gcloud redis clusters add-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_3_ID","address":"IP_ADDRESS_3","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_3_NAME","service-attachment":"SERVICE_ATTACHMENT_1"},{"psc-connection-id":"PSC_CONNECTION_4_ID","address":"IP_ADDRESS_4","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_4_NAME","service-attachment":"SERVICE_ATTACHMENT_2"}]]'

替换以下内容:

  • INSTANCE_ID 是 Memorystore for Redis Cluster 实例的 ID。
  • REGION_ID 是 Memorystore 实例所在的区域的 ID。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。
  • PROJECT_2_ID 是项目 2 的 ID。这是您创建第二个 VPC 网络和子网的项目。
  • PSC_CONNECTION_3_ID 是您在获取网络 2 的转发规则连接 ID 时记下的 Private Service Connect 连接 3。
  • IP_ADDRESS_3 是您预留的第三个 IP 地址。
  • NETWORK_2_ID 是网络 2 的 ID。
  • FORWARDING_RULE_3_NAME 是您创建的第三个转发规则的名称。
  • SERVICE_ATTACHMENT_1 是您的第一个与 FORWARDING RULE_3_NAME 关联的服务连接。
  • PSC_CONNECTION_4_ID 是您在获取网络 2 的转发规则连接 ID 时记下的 Private Service Connect 连接 4。
  • IP_ADDRESS_4 是您预留的第四个 IP 地址。
  • FORWARDING_RULE_4_NAME 是您创建的第四条转发规则的名称。
  • SERVICE_ATTACHMENT_2 是您的第二个服务附件,与 FORWARDING_RULE_4_NAME 相关联。

例如:

gcloud redis clusters add-cluster-endpoints my-instance \
--region=us-central-1 \
--project=my-project-1 \
--cluster-endpoint='[psc-connection:[{"psc-connection-id":"94710983646969729","address":"10.142.0.10","network":"projects/my-project-2/global/networks/my-network-2","forwarding-rule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-3","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa"},{"psc-connection-id":"86510983646969993","address":"10.142.0.12","network":"projects/my-project-2/global/networks/my-network-2","forwarding-rule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-4","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2"}]]'

第 5 步:设置客户端连接

本部分介绍如何配置客户端,以便连接到本指南中涉及的网络。

记下 Private Service Connect 连接端点信息

接下来,记下两个 IP 地址:一个用于您在本教程中设置的每个网络。您为 Memorystore 设置的每个网络都有一个发现连接端点。

gcloud

如需查看网络的 Private Service Connect 连接端点信息,请运行 gcloud redis clusters describe 命令:

gcloud redis clusters describe INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID

输出包含 clusterEndpoints 的列表。对于每个 clusterEndpoint,都有两个用户注册的 Private Service Connect 连接。

记下与类型为 CONNECTION_TYPE_DISCOVERY 的 Private Service Connect 连接对应的 IP 地址。在本教程中,您设置的每个网络都有一个。

例如,以下是 gcloud redis clusters describe 命令的输出示例,其中包含您应记下的 IP 地址:

clusterEndpoints:
- connections:
  - pscConnection:
      address: 10.2.5.09
      connectionType: CONNECTION_TYPE_DISCOVERY
      forwardingRule: projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-1
      network: projects/my-project-1/global/networks/my-network-1
      projectId: my-network-1
      pscConnectionId: '41510983646969883'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
  - pscConnection:
      address: 10.2.5.11
      forwardingRule: projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-2
      network: projects/my-project-1/global/networks/my-network-1
      projectId: my-project-1
      pscConnectionId: '41510983646969234'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2
- connections:
  - pscConnection:
      address: 10.142.0.10
      connectionType: CONNECTION_TYPE_DISCOVERY
      forwardingRule: projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-3
      network: projects/my-project-2/global/networks/my-network-2
      projectId: my-network-2
      pscConnectionId: '94710983646969729'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
  - pscConnection:
      address: 10.142.0.12
      forwardingRule: projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-4
      network: projects/my-project-2/global/networks/my-network-2
      projectId: my-project-2
      pscConnectionId: '86510983646969993'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2

在上述输出中,您需要记下的发现 Private Service Connect 连接的 IP 地址值为 10.2.5.0910.142.0.10

配置客户端

接下来,按如下方式配置客户端:

  • 使用网络 1 中的发现 IP 配置网络 1 中的客户端连接。这是您在上一步中记下的 IP 地址。对于本教程中给出的示例,该值为 10.2.5.09

  • 使用网络 2 中的发现 IP 配置网络 2 中的客户端连接。这是您在上一步中记下的 IP 地址。对于本教程中给出的示例,该值为 10.142.0.10

如需了解如何连接到 Memorystore 实例,请参阅使用 redis-cli 从 Compute Engine 虚拟机进行连接

删除 Private Service Connect 连接

删除 Memorystore 实例之前,您必须先删除与该实例关联的所有 Private Service Connect 连接。为此,您必须删除在本教程中设置的转发规则,并取消注册端点。本部分将引导您先删除所有转发规则,然后再取消注册端点。不过,您可以选择一次删除一个网络的转发规则并取消注册端点。

此外,您还可以选择删除预留的 IP 地址,以便将来使用。

删除转发规则

本部分介绍了如何删除您之前在本教程中创建的转发规则。

删除转发规则 1

gcloud

如需删除转发规则,请运行 gcloud compute forwarding-rules delete 命令:

gcloud compute forwarding-rules delete FORWARDING_RULE_1_NAME \
--region=REGION_ID \
--project=PROJECT_1_ID

替换以下内容:

  • FORWARDING_RULE_1_NAME 是第一个转发规则的名称。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。

删除转发规则 2

gcloud

如需删除转发规则,请运行 gcloud compute forwarding-rules delete 命令:

gcloud compute forwarding-rules delete FORWARDING_RULE_2_NAME \
--region=REGION_ID \
--project=PROJECT_1_ID

替换以下内容:

  • FORWARDING_RULE_2_NAME 是第二个转发规则的名称。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。

删除转发规则 3

gcloud

如需删除转发规则,请运行 gcloud compute forwarding-rules delete 命令:

gcloud compute forwarding-rules delete FORWARDING_RULE_3_NAME \
--region=REGION_ID \
--project=PROJECT_2_ID

替换以下内容:

  • FORWARDING_RULE_3_NAME 是第三个转发规则的名称。
  • PROJECT_2_ID 是项目 2 的 ID。这是您创建第二个 VPC 网络和子网的项目。

删除转发规则 4

gcloud

如需删除转发规则,请运行 gcloud compute forwarding-rules delete 命令:

gcloud compute forwarding-rules delete FORWARDING_RULE_4_NAME \
--region=REGION_ID \
--project=PROJECT_2_ID

替换以下内容:

  • FORWARDING_RULE_4_NAME 是您的第四条转发规则的名称。
  • PROJECT_2_ID 是项目 2 的 ID。这是您创建第二个 VPC 网络和子网的项目。

取消注册 Private Service Connect 端点

本部分提供了有关取消注册您在本教程中之前注册的 Private Service Connect 端点的说明。

为 VPC 网络 1 和 2 取消注册端点

gcloud

如需向 Memorystore 实例取消注册端点信息,请运行 gcloud redis clusters remove-cluster-endpoints 命令。

gcloud redis clusters remove-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_1_ID"},{"psc-connection-id":"PSC_CONNECTION_2_ID"}]]' \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_3_ID"},{"psc-connection-id":"PSC_CONNECTION_4_ID"}]]'

替换以下内容:

  • INSTANCE_ID 是您要取消注册端点的实例的 ID。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。
  • REGION_ID 是 Memorystore 实例所在的区域的 ID。
  • PSC_CONNECTION_1_ID 是您在获取转发规则连接 ID 时记下的第一个 Private Service Connect 连接 ID。
  • PSC_CONNECTION_2_ID 是您在获取转发规则连接 ID 时记下的第二个 Private Service Connect 连接 ID。
  • PSC_CONNECTION_3_ID 是您在获取转发规则连接 ID 时记下的第三个 Private Service Connect 连接 ID。
  • PSC_CONNECTION_4_ID 是您在获取转发规则连接 ID 时记下的第四个 Private Service Connect 连接 ID。

上述命令会取消注册本教程中创建的所有连接。如果您只想取消注册其中一个连接,请仅指定要移除的连接的连接 ID。

删除 Memorystore for Redis Cluster 实例

在删除 Memorystore 实例之前,您必须取消注册 Private Service Connect 端点

gcloud

如需删除 Memorystore for Redis Cluster 实例,请运行 gcloud redis clusters delete 命令:

gcloud redis clusters delete INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID

替换以下内容:

  • INSTANCE_ID 是您的实例 ID。
  • REGION_ID 是 Memorystore 实例所在的区域的 ID。
  • PROJECT_1_ID 是项目 1 的 ID。这是您的 Memorystore 实例所在的项目。