创建端点连接
如需为 Integration Connectors 配置专用连接,您必须创建 PSC (Private Service Connect) 连接。但是,如需使用 PSC 连接,您还必须创建端点连接,因为您无法直接使用 PSC 连接。您可以将端点连接视为 PSC 服务连接的接口。创建后,在为专用连接配置连接器时,您可以使用端点连接详细信息。本页面介绍了如何创建端点连接,并假定您熟悉以下概念:
您可以创建 IP 地址或主机名作为端点连接。
创建端点连接作为 IP 地址
如需将端点连接创建为 IP 地址,您可以使用 Cloud 控制台或命令行 (gcloud)。控制台
如需通过 Cloud 控制台创建端点连接,请执行以下操作:
- 打开 Integration Connectors 的端点连接页面。
- 点击 + 创建 (+ Create)。系统会打开创建端点连接页面。
- 为以下字段输入值:
- 名称:端点连接的名称。该名称必须是唯一的。不得有其他同名的端点连接,且日后无法更改名称。该名称必须以小写字母开头,后面最多可跟 63 个小写字母、数字或连字符,但不能以连字符结尾。长度下限为 2。
- 服务连接 ID:您已创建的 PSC 服务连接的名称。
- (可选)说明:输入端点连接的说明。
- (可选)标签:以键值对的形式输入资源标签。如需详细了解标签,请参阅什么是标签?
- 点击创建。
IP 地址列指定端点连接的 IP 地址。为专用连接配置连接器时,您必须使用此 IP 地址。
gcloud
如需从命令行创建端点连接,请执行以下操作:
- 获取 PSC 服务连接资源:
gcloud compute service-attachments list
该命令会返回服务连接列表。例如:
NAME REGION TARGET_SERVICE CONNECTION_PREFERENCE demo-sa us-west1 k8s2-tcp-tgysilgj-apps-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC
您在后续步骤中会用到此服务连接信息。
- 在运行 CreateEndpointAttachment API 之前获取身份验证令牌:
TOKEN="$(gcloud auth print-access-token)"
- 使用 CreateEndpointAttachment API 创建端点连接。例如:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "projects/PROJECT_ID/locations/LOCATION/endpointAttachments/ENDPOINT_ATTACHMENT_NAME", "serviceAttachment": "projects/demo/serviceAttachments/?SERVICE_ATTACHMENT_NAME" }' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpointAttachments?endpointAttachmentId=ENDPOINT_ATTACHMENT_NAME
其中:
- LOCATION 是服务连接的区域。例如
us-west1
。 - PROJECT_ID 是您在其中创建了 PSC 服务连接的 Google Cloud 项目。
- ENDPOINT_ATTACHMENT_NAME 是端点连接的名称。该名称必须是唯一的。不能包含同名的其他端点连接,并且日后无法更改名称。该名称必须以小写字母开头,后面最多可跟 31 个小写字母、数字或连字符,但不能以连字符结尾。长度下限为 2。
- SERVICE_ATTACHMENT_NAME 是服务连接的名称。使用之前运行的
gcloud compute service-attachments list
命令返回的 PSC 服务帐号名称。
在您调用该 API 后,Integration Connectors 会启动一项长时间运行的操作,可能需要一些时间才能完成操作。端点连接将在操作成功完成后创建。
- LOCATION 是服务连接的区域。例如
- 获取与您的 Google Cloud 项目关联的 Service Directory 的项目 ID,然后在服务连接中将该项目 ID 列入许可名单。
- 验证端点连接是否是使用 GetEndpointAttachment API 创建的。例如:
curl -X GET -H "Authorization: Bearer $TOKEN" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpointAttachments/ENDPOINT_ATTACHMENT_NAME
API 会返回类似于如下所示的响应:
{ "name": "projects/demo-project/locations/us-central1/endpointAttachments/demo-ea", "createTime": "2023-04-17T04:34:59.569527046Z", "updateTime": "2023-04-17T04:37:25.189074195Z", "description": "demo endpoint attachment", "serviceAttachment": "projects/demo-project/regions/us-central1/serviceAttachments/demo-sa", "endpointIp": "10.0.0.0", "labels": {"team":"sre"}, }
endpointIp
字段中提供了端点连接的 IP 地址。在此示例响应中,IP 地址为10.0.0.0
。请在为专用连接配置连接器时使用此 IP 地址。
如果端点连接创建成功,则端点连接页面中会列出新创建的连接,类似于下图:
到目前为止,所描述的步骤显示了如何将端点连接创建为 IP 地址。但是,您也可以创建端点连接作为主机名,并使用主机名为专用连接配置连接器。如需了解如何使用主机名创建端点连接,请参阅以主机名形式创建端点连接。
创建端点连接作为主机名
如需将端点连接创建为主机名,请执行以下任务:
- 创建端点连接作为 IP 地址。如需了解详情,请参阅创建端点连接作为 IP 地址。
- 在您的任何 Google Cloud 项目中创建一个 Cloud DNS 专用代管式区域。
在此 DNS 区域中,您必须添加要用于连接器配置的主机名,并将该主机名映射到您在第 1 步中获得的端点连接 IP 地址。如需了解如何创建 Cloud DNS 专用托管地区,请参阅创建专用地区和添加记录。
- 在 Google Cloud 项目中创建用于 Integration Connectors 的 Integration Connectors 代管式区域。Integration Connectors 代管式区域(对等互连区域)会与 Cloud DNS 专用代管式区域(在第 2 步中创建)通信以进行名称解析。
在创建代管式区域之前,您必须授予以下角色和权限:
- 向创建 Integration Connectors 代管式区域的用户授予
connectors.managedZones.create
权限。roles/connectors.admin
IAM 角色或roles/connectors.managedZonesAdmin
IAM 角色提供connectors.managedZones.create
权限。如需了解各种 IAM 角色及其适用于 Integration Connectors 的相应权限,请参阅 Integration Connectors 的 IAM 角色和权限。 - 将
role/dns.peer
角色授予 Integration Connectorsservice-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com
服务帐号。如果 Cloud DNS Google Cloud 项目与 Integration Connectors Google Cloud 项目不同,则将
roles/dns.peer
角色授予 Cloud DNS Google Cloud 项目中的 Integration Connectors 服务帐号。例如,假设您希望在 Google Cloud 项目 12345 中创建 Integration Connectors 代管式区域,并且 Cloud DNS 位于 Google Cloud 项目 67890 中。在这种情况下,您必须将roles/dns.peer
角色授予 Google Cloud 项目 67890 中的service-12345@gcp-sa-connectors.iam.gserviceaccount.com
服务帐号。
如需创建 Integration Connectors 代管式区域,您可以使用 Cloud 控制台或命令行 (gcloud)。
控制台
如需通过 Cloud 控制台创建 Integration Connectors 代管式区域,请执行以下操作:
gcloud
如需从命令行创建 Integration Connectors 代管式区域,请执行以下操作:
- 在运行 CreateManagedZone API 之前获取身份验证令牌:
TOKEN="$(gcloud auth print-access-token)"
- 使用 CreateManagedZone API 创建托管式区域。例如:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "description": "DESCRIPTION", "dns": "DNS_NAME", "target_project": "TARGET_PROJECT", "target_vpc": "TARGET_VPC" }' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones?managedZoneId=MANAGED_ZONE_NAME
其中:
- DESCRIPTION 是托管地区的可选说明。
- DNS_NAME 是您为其创建托管(对等互连)区域的 Cloud DNS 名称。
- TARGET_PROJECT 是具有专用 Cloud DNS 区域的 Google Cloud 项目的名称。
- TARGET_NETWORK 是维护专用 Cloud DNS 区域的 VPC 网络的名称。
- PROJECT_ID 是用于 Integration Connectors 的 Google Cloud 项目。
- MANAGED_ZONE_NAME 是托管地区的名称。该名称必须是唯一的。不能包含同名的其他托管地区,并且日后无法更改名称。该名称必须以小写字母开头,后面最多可跟 63 个小写字母、数字或连字符,但不能以连字符结尾。长度下限为 2。
在您调用该 API 后,Integration Connectors 会启动一项长时间运行的操作,可能需要一些时间才能完成操作。操作成功完成后,系统将创建托管式区域。
- 验证是否使用 GetManagedZone API 创建了托管式区域。例如:
curl -X GET -H "Authorization: Bearer $TOKEN" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones/MANAGED_ZONE_NAME
API 会返回类似于如下所示的响应:
{ "name": "projects/demo-project/locations/global/managedZones/demo-mz", "createTime": "2023-04-17T04:34:59.569527046Z", "updateTime": "2023-04-17T04:37:25.189074195Z", "description": "demo managed zone", "dns": "api.private.service.com.", "targetVpc": "target-project-vpc", "targetProject": "target-project" }
- 向创建 Integration Connectors 代管式区域的用户授予
如果代管区域创建成功,新创建的代管区域便会列在代管区域页面中,如下图所示:
验证端点连接设置
您可以通过创建与后端系统的连接来验证端点连接。创建连接时,请在 Destinations
部分选择 Destination type
作为 Hostname
,然后输入适当的端点 IP 地址或主机名。如果连接创建成功,在 Cloud 控制台的“连接”页面中,新创建的连接的状态将为 Active
。