创建和管理 Private Service Connect 接口 (original) (raw)

本页面介绍提供方网络管理员如何创建和管理 Private Service Connect 接口。 Private Service Connect 接口允许服务提供方 Virtual Private Cloud (VPC) 网络发起与使用方 VPC 网络的连接。

准备工作

角色

如需获得创建 Private Service Connect 接口所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

Compute Instance Admin (v1) 角色包含创建 Private Service Connect 接口所需的 compute.instances.pscInterfaceCreate 权限。

创建具有 Private Service Connect 接口的虚拟机

如需创建 Private Service Connect 接口连接,您需要一个至少有两个网络接口的虚拟机实例。第一个接口连接到提供方子网。其他接口可以是 Private Service Connect 接口,用于请求与不同使用方 VPC 网络中的网络连接的连接。

如果接受连接, Google Cloud 会向 Private Service Connect 接口分配由网络连接指定的子网中的内部 IP 地址。

创建具有多个 Private Service Connect 接口的虚拟机时,每个 Private Service Connect 接口都必须连接到不同的网络连接,而这些网络连接位于不同的 VPC 网络中。

如果您创建了一个 Private Service Connect 接口,该接口引用了配置为手动接受连接的网络连接并且该接口的项目不在网络连接的接受列表中,则 Private Service Connect 接口的虚拟机创建过程会失败。在这种情况下,请与使用方组织合作,将您的项目添加到接受列表,然后创建 Private Service Connect 接口。

创建 Private Service Connect 接口时,您可以选择为其分配一个或多个内部别名 IP 范围。如果您计划分配别名 IP 地址范围,请与使用方组织联系以确定适当的 IP 地址范围。

如需分配别名 IP 范围,请以 CIDR 表示法指定范围的前缀长度。在为 Private Service Connect 接口分配一个或多个别名 IP 范围时,Google Cloud 会从与网络连接关联的子网的主要 IP 地址范围中分配别名 IP 范围。Private Service Connect 接口的主要 IP 地址是从任何别名 IP 范围之外分配的。如果网络连接的子网中没有足够的 IP 地址来分配主要 IP 地址和别名 IP 范围,则 Private Service Connect 接口的虚拟机创建过程会失败。您可以通过描述接口的虚拟机找到分配的特定 IP 地址。

控制台

创建虚拟机实例

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面:
    进入“虚拟机实例”
  2. 点击创建实例
  3. 输入名称。
  4. 点击区域,然后选择您希望连接到的网络连接所在的区域。
  5. 选择一个可用区。
  6. 如需配置虚拟机的默认网络接口,请执行以下操作:
    1. 点击网络
    2. 网络接口部分中,点击第一个网络接口(即默认网络接口)。
    3. 请选择一个网络。
    4. 选择与 Private Service Connect 接口的网络连接位于同一区域的子网。
    5. 选择 IP 栈类型。
  7. 点击完成

添加 Private Service Connect 接口

您可以针对要添加的每个接口重复上述步骤。

添加虚拟 Private Service Connect 接口

  1. 点击添加网络接口
  2. 对于接口类型,选择 Private Service Connect
  3. 输入相应接口的网络连接的网址。
  4. 为接口选择 IP 栈类型。网络连接的子网决定了可能的堆栈类型。
  5. 可选:如需添加别名 IP 范围,请执行以下操作:
    1. 别名 IP 范围部分中,点击添加 IP 范围
    2. 前缀长度框中,输入前缀长度,例如 /30。您可以通过点击添加 IP 范围,然后输入您希望添加的每个额外别名 IP 范围的前缀长度,来添加多个别名 IP 范围。
  6. 点击完成

添加动态 Private Service Connect 接口

  1. 点击添加 Dynamic Network Interface
  2. 对于接口类型,选择 Private Service Connect
  3. 选择父级网络接口。
  4. 输入 VLAN ID。
  5. 为接口选择 IP 栈类型。网络连接的子网决定了可能的堆栈类型。
  6. 可选:如需添加别名 IP 范围,请执行以下操作:
    1. 别名 IP 范围部分中,点击添加 IP 范围
    2. 前缀长度框中,输入前缀长度,例如 /30。您可以通过点击添加 IP 范围,然后输入您希望添加的每个额外别名 IP 范围的前缀长度,来添加多个别名 IP 范围。
  7. 点击完成

如需创建虚拟机,请点击创建

gcloud

gcloud compute instances create producer-vm \  
    --zone=us-west-1a \  
    --network-interface='subnet=producer-subnet,no-address' \  
    --network-interface='network-attachment=projects/consumer-project/regions/us-west-1/networkAttachments/consumer-1-network-attachment,vlan=2' \  
    --network-interface='network-attachment=projects/consumer-project/regions/us-west-1/networkAttachments/consumer-2-network-attachment,vlan=3' \  
    --network-interface='network=producer-vpc-2,subnet=producer-subnet-2' \  
    --network-interface='network-attachment=projects/consumer-project/regions/us-west-1/networkAttachments/consumer-3-network-attachment,vlan=4' \  
    --network-interface='network-attachment=projects/consumer-project/regions/us-west-1/networkAttachments/consumer-4-network-attachment'  

API

{  
  "machineType": "zones/us-west-1a/machineTypes/e2-medium",  
  "name": "producer-vm",  
  "disks": [  
    {  
      "initializeParams": {  
        "sourceImage": "projects/debian-cloud/global/images/family/debian-11"  
    },  
    "boot": true  
  }  
  ],  
  "networkInterfaces": [  
    {  
      "network": "https://www.googleapis.com/compute/v1/projects/producer-project-id/global/networks/producer-vpc-1",  
      "subnetwork": "https://www.googleapis.com/compute/v1/projects/producer-project-id/regions/us-west-1/subnetworks/producer-subnet"  
    },  
    {  
      "networkAttachment": "projects/consumer-project1/regions/us-west-1/networkAttachments/consumer-1-network-attachment",  
      "vlan": 2  
    },  
    {  
      "networkAttachment": "projects/consumer-project2/regions/us-west-1/networkAttachments/consumer-2-network-attachment",  
      "vlan": 3  
    },  
    {  
      "network": "https://www.googleapis.com/compute/v1/projects/producer-project-id/global/networks/producer-vpc-2",  
      "subnetwork": "https://www.googleapis.com/compute/v1/projects/producer-project-id/regions/us-west-1/subnetworks/producer-subnet-2"  
    },  
    {  
      "networkAttachment": "projects/consumer-project3/regions/us-west-1/networkAttachments/consumer-3-network-attachment",  
      "vlan": 4  
    },  
    {  
      "networkAttachment": "projects/consumer-project4/regions/us-west-1/networkAttachments/consumer-4-network-attachment"  
    }  
  ]  
}  

```

如需详细了解如何创建虚拟机实例,请参阅创建和启动虚拟机实例

向现有虚拟机添加动态 Private Service Connect 接口

您可以向现有虚拟机添加动态 Private Service Connect 接口,而无需重启虚拟机。

您必须先配置路由,然后流量才能通过新的 Private Service Connect 接口传输。

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面:
    进入“虚拟机实例”
  2. 点击要更新的虚拟机的名称。
  3. 点击修改
  4. 网络部分中,点击添加 Dynamic Network Interface
  5. 对于接口类型,选择 Private Service Connect
  6. 选择父级网络接口。
  7. 输入 VLAN ID。
  8. 输入相应接口的网络连接的网址。
  9. 为接口选择 IP 栈类型。网络连接的子网决定了可能的堆栈类型
  10. 可选:如需添加别名 IP 范围,请执行以下操作:
  11. 别名 IP 范围部分中,点击添加 IP 范围
  12. 前缀长度框中,输入前缀长度,例如 /30。您可以通过点击添加 IP 范围,然后输入您希望添加的每个额外别名 IP 范围的前缀长度,来添加多个别名 IP 范围。
  13. 点击完成
  14. 点击保存

gcloud

如需向现有虚拟机添加单个动态 Private Service Connect 接口,请使用 gcloud compute instances network-interfaces add 命令

如需添加多个动态 Private Service Connect 接口,请针对要添加的每个接口重复执行该命令。

gcloud compute instances network-interfaces add INSTANCE_NAME
--zone=ZONE
--vlan=VLAN_ID
--parent-nic-name=PARENT_NIC_NAME
--network-attachment=ATTACHMENT_URI

替换以下内容:

API

如需向现有虚拟机添加单个动态 Private Service Connect 接口,请向 instances.addNetworkInterface 方法发送请求。

如需添加多个动态 Private Service Connect 接口,请针对要添加的每个接口重复发出该请求。

HTTP 方法和网址:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addNetworkInterface

请求 JSON 正文:

{ "networkAttachment": "ATTACHMENT_URI", "parentNicName": "PARENT_NIC_NAME", "vlan": VLAN_ID }

替换以下内容:

从虚拟 Private Service Connect 接口迁移到动态 Private Service Connect 接口

如需将服务配置为使用动态 Private Service Connect 接口,而不是虚拟 Private Service Connect 接口,请执行以下操作。

  1. 创建一个虚拟机,该虚拟机使用动态 Private Service Connect 接口。
  2. 为新虚拟机配置路由
  3. 更新服务以使用新的虚拟机。
  4. 删除使用虚拟 Private Service Connect 接口的虚拟机。

使用实例模板创建和管理 Private Service Connect 接口

您可以使用实例模板创建和管理 Private Service Connect 接口。

创建实例模板后,您可以使用该模板执行以下操作:

如需创建使用别名 IP 范围或多个 Private Service Connect 接口的实例模板,请使用创建具有 Private Service Connect 接口的虚拟机时所用的方法。实例模板仅支持通过前缀长度指定别名 IP 范围。

控制台

  1. 在 Google Cloud 控制台中,前往实例模板页面:
    转到“实例模板”
  2. 点击创建实例模板
  3. 输入实例模板的名称
  4. 点击高级选项
  5. 点击网络
  6. 网络接口部分中,点击 展开箭头。
  7. 为实例模板的主要网络接口选择网络和子网。
  8. 点击完成
  9. 如需添加 Private Service Connect 接口,请执行以下操作。您可以针对要添加的每个接口重复执行上述步骤:
    • 对于虚拟 Private Service Connect 接口,请执行以下操作:
      1. 点击添加网络接口
      2. 对于接口类型,选择 Private Service Connect
    • 对于动态 Private Service Connect 接口,请执行以下操作:
      1. 点击添加 Dynamic Network Interface
      2. 对于接口类型,选择 Private Service Connect
      3. 选择父级网络接口。
      4. 输入 VLAN ID。
  10. 如需完成 Private Service Connect 接口的配置,请执行以下操作:
  11. 输入相应接口的网络连接的网址。
  12. 为接口选择 IP 栈类型。网络连接的子网决定了可能的堆栈类型
  13. 可选:如需添加别名 IP 范围,请执行以下操作:
    1. 别名 IP 范围部分中,点击添加 IP 范围
    2. 前缀长度框中,输入前缀长度,例如 /30。您可以通过点击添加 IP 范围,然后输入您希望添加的每个额外别名 IP 范围的前缀长度,来添加多个别名 IP 范围。
  14. 点击完成
  15. 如需创建虚拟机,请点击创建

gcloud

API

如需详细了解如何创建实例模板,请参阅创建实例模板

描述 Private Service Connect 接口

您可以描述一个虚拟机,以查看其 Private Service Connect 接口的详细信息。每个接口的名称、IP 地址、别名 IP 范围、网络连接和使用方子网列在虚拟机说明的网络接口部分中。

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。
    进入“虚拟机实例”
  2. 点击具有 Private Service Connect 接口的虚拟机。
  3. 网络接口部分中,查看 Private Service Connect 接口的详细信息。

gcloud

gcloud compute instances describe VM_NAME --zone=ZONE

替换以下内容:

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

替换以下内容:

终止 Private Service Connect 接口连接

如需终止虚拟 Private Service Connect 接口与网络连接之间的连接,请删除该接口的虚拟机。

如需终止动态 Private Service Connect 接口与网络连接之间的连接,请执行以下任一操作:

移除动态 Private Service Connect 接口

您可以移除动态 Private Service Connect 接口,而无需重启关联的虚拟机。

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面:
    进入“虚拟机实例”
  2. 点击要更新的虚拟机的名称。
  3. 点击修改
  4. Dynamic Network Interface 部分中,点击要删除的接口旁边的 删除

gcloud

使用 gcloud compute instances network-interfaces delete 命令

gcloud compute instances network-interfaces delete INSTANCE_NAME
--zone=ZONE
--network-interface=INTERFACE_NAME

替换以下内容:

API

instances.deleteNetworkInterface 方法发送请求。

HTTP 方法和网址:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/deleteNetworkInterface?networkInterfaceName=INTERFACE_NAME

替换以下内容:

删除具有 Private Service Connect 接口的虚拟机

删除虚拟机会终止所有 Private Service Connect 接口连接。

如需了解如何删除虚拟机,请参阅删除实例

后续步骤