创建端点连接

如需为 Integration Connectors 配置专用连接,您必须创建 PSC (Private Service Connect) 连接。但是,如需使用 PSC 连接,您还必须创建端点连接,因为您无法直接使用 PSC 连接。您可以将端点连接视为 PSC 服务连接的接口。创建后,在为专用连接配置连接器时,您可以使用端点连接详细信息。本页面介绍了如何创建端点连接,并假定您熟悉以下概念:

您可以创建 IP 地址或主机名作为端点连接。

创建端点连接作为 IP 地址

如需将端点连接创建为 IP 地址,您可以使用 Cloud 控制台或命令行 (gcloud)。

控制台

如需通过 Cloud 控制台创建端点连接,请执行以下操作:

  1. 打开 Integration Connectors 的端点连接页面。

    前往“端点连接”

  2. 点击 + 创建 (+ Create)。系统会打开创建端点连接页面。
  3. 为以下字段输入值:
    • 名称:端点连接的名称。该名称必须是唯一的。不得有其他同名的端点连接,且日后无法更改名称。该名称必须以小写字母开头,后面最多可跟 63 个小写字母、数字或连字符,但不能以连字符结尾。长度下限为 2。
    • 服务连接 ID:您已创建的 PSC 服务连接的名称。
    • (可选)说明:输入端点连接的说明。
    • (可选)标签:以键值对的形式输入资源标签。如需详细了解标签,请参阅什么是标签?
  4. 点击创建

IP 地址列指定端点连接的 IP 地址。为专用连接配置连接器时,您必须使用此 IP 地址。

gcloud

如需从命令行创建端点连接,请执行以下操作:

  1. 获取 PSC 服务连接资源:
    gcloud compute service-attachments list

    该命令会返回服务连接列表。例如:

    NAME       REGION   TARGET_SERVICE                                       CONNECTION_PREFERENCE
    demo-sa us-west1 k8s2-tcp-tgysilgj-apps-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC

    您在后续步骤中会用到此服务连接信息。

  2. 在运行 CreateEndpointAttachment API 之前获取身份验证令牌:
    TOKEN="$(gcloud auth print-access-token)"
  3. 使用 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 会启动一项长时间运行的操作,可能需要一些时间才能完成操作。端点连接将在操作成功完成后创建。

  4. 获取与您的 Google Cloud 项目关联的 Service Directory 的项目 ID,然后在服务连接中将该项目 ID 列入许可名单。
  5. 验证端点连接是否是使用 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 地址。但是,您也可以创建端点连接作为主机名,并使用主机名为专用连接配置连接器。如需了解如何使用主机名创建端点连接,请参阅以主机名形式创建端点连接

创建端点连接作为主机名

如需将端点连接创建为主机名,请执行以下任务:

  1. 创建端点连接作为 IP 地址。如需了解详情,请参阅创建端点连接作为 IP 地址
  2. 在您的任何 Google Cloud 项目中创建一个 Cloud DNS 专用代管式区域。

    在此 DNS 区域中,您必须添加要用于连接器配置的主机名,并将该主机名映射到您在第 1 步中获得的端点连接 IP 地址。如需了解如何创建 Cloud DNS 专用托管地区,请参阅创建专用地区添加记录

  3. 在 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 Connectors 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 中创建 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 代管式区域,请执行以下操作:

    1. 转到“Integration Connectors”的“代管式区域”页面。

      前往“代管式区域”

    2. 为以下字段输入值:
      1. 名称:托管式区域的名称。
      2. 目标 DNS 名称:要为其创建托管(对等互连)区域的 Cloud DNS 完整名称。例如 server8.stage.user.private
      3. 目标项目:具有专用 Cloud DNS 区域的 Google Cloud 项目的名称。
      4. 目标网络:维护专用 Cloud DNS 区域的 VPC 网络的名称。
      5. (可选)说明:输入端点连接的说明。
      6. (可选)标签:以键值对的形式输入资源标签。如需详细了解标签,请参阅什么是标签?
    3. 点击创建

    gcloud

    如需从命令行创建 Integration Connectors 代管式区域,请执行以下操作:

    1. 在运行 CreateManagedZone API 之前获取身份验证令牌:
      TOKEN="$(gcloud auth print-access-token)"
    2. 使用 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 会启动一项长时间运行的操作,可能需要一些时间才能完成操作。操作成功完成后,系统将创建托管式区域。

    3. 验证是否使用 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 作为 Hostname,然后输入适当的端点 IP 地址或主机名。如果连接创建成功,在 Cloud 控制台“连接”页面中,新创建的连接的状态将为 Active