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

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

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

  • 定位到 Memorystore 实例的服务连接。

  • 向实例注册组件。

如需了解如何为已有一些自动注册的 Private Service Connect 连接的实例设置多个 VPC 网络,请参阅为已预配自动注册连接的实例设置多个 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/memorystore.admin 可以完全控制 Memorystore for Valkey 实例,并控制实例的整个生命周期。
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

启用管理 Compute Engine 网络、Memorystore for Valkey 和 Private Service Connect 资源所需的以下 API。

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 memorystore.googleapis.com
gcloud services enable --project=PROJECT_2_ID memorystore.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 连接,请运行 create 命令,而不指定网络,如以下示例所示。

gcloud

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

gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--project=PROJECT_1_ID \
--replica-count=REPLICA_COUNT \
--shard-count=SHARD_COUNT

替换以下内容:

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

  • REGION_ID 是您希望实例放置的区域。

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

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

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

例如:

gcloud memorystore instances create my-instance \
--location=us-central1 \
--replica-count=2 \
--shard-count=8

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

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

gcloud

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

gcloud memorystore instances describe INSTANCE_ID --project=PROJECT_1_ID --location=REGION_ID

替换以下内容:

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

以下是此命令的示例输出:

gcloud memorystore instances describe my-instance \
--project=my-project-1 --location=us-central1

...

pscAttachmentDetails:
- 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 网络设置和注册连接

本部分介绍了如何设置第一个 VPC 网络所需的两个 Private Service Connect 连接。您必须针对要设置连接的每个 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 实例注册 Private Service Connect 连接的步骤。首先,您需要获取转发规则的关联 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 的连接信息

gcloud

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

  gcloud memorystore instances update INSTANCE_ID \
   --location=REGION_ID \
   --project=PROJECT_1_ID \
   --add-endpoints='[{"connections":[{"pscConnection":{"pscConnectionId":"PSC_CONNECTION_1_ID","ipAddress":"IP_ADDRESS_1","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwardingRule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_1_NAME","serviceAttachment":"SERVICE_ATTACHMENT_1"}}, {"pscConnection":{"pscConnectionId":"PSC_CONNECTION_2_ID","ipAddress":"IP_ADDRESS_2","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwardingRule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_2_NAME","serviceAttachment":"SERVICE_ATTACHMENT_2"}}]}]'
  

替换以下内容:

  • INSTANCE_ID 是 Memorystore for Valkey 实例的 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_1FORWARDING 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 memorystore instances update my-instance \
    --location=us-central-1 \
    --project=my-project-1 \
    --add-endpoints='[{"connections":[{"pscConnection":{"pscConnectionId":"41510983646969883","ipAddress":"10.2.5.9","network":"projects/my-project-1/global/networks/my-network-1","forwardingRule":"projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-1","serviceAttachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa"}}, {"pscConnection":{"pscConnectionId":"41510983646969234","ipAddress":"10.2.5.11","network":"projects/my-project-1/global/networks/my-network-1","forwardingRule":"projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-2","serviceAttachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2"}}]}]'
    

第 4 步:为第二个 VPC 网络设置和注册连接

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

为网络 2 创建 Private Service Connect 端点

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

为网络 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 实例注册 Private Service Connect 连接的步骤。首先,您需要获取转发规则的关联 ID 和项目 ID。

获取网络 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 连接,您需要提供 Private Service Connect 连接 ID、IP 地址、网络路径、转发规则路径/URI 和目标服务连接。为此,请运行 gcloud memorystore instances update --add-endpoints 命令:

gcloud memorystore instances update INSTANCE_ID \
--location=REGION_ID \
--project=PROJECT_1_ID \
--add-endpoints='[{"connections":[{"pscConnection":{"pscConnectionId":"PSC_CONNECTION_3_ID","ipAddress":"IP_ADDRESS_3","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwardingRule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_3_NAME","serviceAttachment":"SERVICE_ATTACHMENT_1"}}, {"pscConnection":{"pscConnectionId":"PSC_CONNECTION_4_ID","ipAddress":"IP_ADDRESS_4","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwardingRule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_4_NAME","serviceAttachment":"SERVICE_ATTACHMENT_2"}}]}]'

替换以下内容:

  • INSTANCE_ID 是 Memorystore for Valkey 实例的 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_1FORWARDING 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 memorystore instances my-instance \
--location=us-central-1 \
--project=my-project-1 \
--add-endpoints='[{"connections":[{"pscConnection":{"pscConnectionId":"94710983646969729","ipAddress":"10.142.0.10","network":"projects/my-project-2/global/networks/my-network-2","forwardingRule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-3","serviceAttachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa"}}, {"pscConnection":{"pscConnectionId":"86510983646969993","ipAddress":"10.142.0.12","network":"projects/my-project-2/global/networks/my-network-2","forwardingRule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-4","serviceAttachment":"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 memorystore instances describe 命令:

gcloud memorystore instances describe INSTANCE_ID \
--location=REGION_ID \
--project=PROJECT_1_ID

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

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

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

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

在上面的输出结果中,您需要记下发现的 Private Service Connect 连接的 IP 地址值,即 10.2.5.910.142.0.10

配置客户端

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

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

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

如需了解如何连接到 Memorystore 实例,请参阅使用 valkey-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 memorystore instances update --remove-endpoints 命令。

gcloud memorystore instances update INSTANCE_ID \
--location=REGION_ID \
--project=PROJECT_1_ID \
--remove-endpoints='[{"connections":[{"pscConnection":{"pscConnectionId":"PSC_CONNECTION_1_ID","ipAddress":"IP_ADDRESS_1","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwardingRule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_1_NAME","serviceAttachment":"SERVICE_ATTACHMENT_1"}}, {"pscConnection":{"pscConnectionId":"PSC_CONNECTION_2_ID","ipAddress":"IP_ADDRESS_2","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwardingRule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_2_NAME","serviceAttachment":"SERVICE_ATTACHMENT_2"}}]}, {"connections":[{"pscConnection":{"pscConnectionId":"PSC_CONNECTION_3_ID","ipAddress":"IP_ADDRESS_3","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwardingRule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_3_NAME","serviceAttachment":"SERVICE_ATTACHMENT_1"}}, {"pscConnection":{"pscConnectionId":"PSC_CONNECTION_4_ID","ipAddress":"IP_ADDRESS_4","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwardingRule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_4_NAME","serviceAttachment":"SERVICE_ATTACHMENT_2"}}]}]'

替换以下内容:

  • INSTANCE_ID 是您要为其取消注册端点的实例的 ID。
  • PROJECT_1_ID 是项目 1 的 ID。这是 Memorystore 实例所在的项目。
  • REGION_ID 是 Memorystore 实例所在区域的 ID。
  • PSC_CONNECTION_1_ID 是您在获取转发规则连接 ID 时记下的第一个 Private Service Connect 连接 ID。
  • IP_ADDRESS_1 是您预留的第一个 IP 地址的地址。
  • NETWORK_1_ID 是网络 1 的 ID。
  • FORWARDING_RULE_1_NAME 是您创建的第一个转发规则的名称。
  • SERVICE_ATTACHMENT_1FORWARDING 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 关联的第二个服务附件。
  • 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_1FORWARDING 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 关联的第二个服务附件。

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

删除 Memorystore for Valkey 实例

您必须先注销 Private Service Connect 端点,然后才能删除 Memorystore 实例。

gcloud

如需删除 Memorystore for Valkey 实例,请运行 gcloud memorystore instances delete 命令:

gcloud memorystore instances delete INSTANCE_ID \
--location=REGION_ID \
--project=PROJECT_1_ID

替换以下内容:

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