创建端点连接
要为 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 是服务连接的名称。使用 PSC
之前返回的 Pod 中的
运行
gcloud compute service-attachments list
命令。
在您调用 API 后,Integration Connectors 会启动 长时间运行的操作,可能需要一些时间才能完成。端点 操作成功完成后,系统将创建连接。
- LOCATION 是服务连接的区域。例如
- 获取与您的 Google Cloud 项目关联的服务目录的项目 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 代管式区域。集成连接器
代管式区域(对等互连区域)与 Cloud DNS 专用代管式区域(在第 2 步中创建)进行通信
以进行名称解析
在创建托管区域之前,您必须授予以下角色和权限:
- 将
connectors.managedZones.create
权限授予 创建 Integration Connectors 代管式区域的用户。connectors.managedZones.create
权限为roles/connectors.admin
IAM 角色或roles/connectors.managedZonesAdmin
IAM 角色。有关 各种 IAM 角色及其适用于 Integration Connectors 的相应权限,请参阅 集成连接器的 IAM 角色和权限。 - 向 Integration Connectors 授予
role/dns.peer
角色service-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 和 Cloud DNS 中创建 Integration Connectors 代管式区域 属于 Google Cloud 项目 67890。在这种情况下,您必须向 将roles/dns.peer
角色分配给service-12345@gcp-sa-connectors.iam.gserviceaccount.com
个服务账号 在 Google Cloud 项目 67890 中。
如需创建 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 名称。例如
server8.stage.user.private
。 - 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" }
- 将
如果代管式区域创建成功,则新创建的代管式区域将 代管区域页面中列出的状态,如下图所示:
验证端点连接设置
您可以通过创建与后端系统的连接来验证端点连接。时间
在创建连接时,在 Destinations
部分中,选择
Destination type
为 Endpoint attachment
,然后选择适当的端点连接。如果
成功创建连接后,新创建的连接的状态将
在“连接”页面中为 Active
(位于 Cloud 控制台中)。