本页面介绍了 Cloud Composer 的共享 VPC 网络和宿主项目要求。
通过共享 VPC,组织可以在项目级层建立预算和访问权限控制边界,并使用专用 IP 跨这些边界进行安全高效的通信。在共享 VPC 配置中,Cloud Composer 可以调用同一组织中其他 Google Cloud 项目中托管的服务,而无需将服务公开给公共互联网。
重要提示
- 共享 VPC 要求您指定网络和子网所属的宿主项目以及与该宿主项目关联的服务项目。 当 Cloud Composer 参与共享 VPC 时,Cloud Composer 环境位于服务项目中。
- 要设置共享 VPC,请在宿主项目中选择以下 IP 范围:
- Cloud Composer 用作其计算层的 GKE 节点所用子网的主要 IP 范围
- GKE Service的次要 IP 范围
- GKE pod 的次要 IP 范围
- 次要 IP 范围不能与此 VPC 中的任何其他次要范围重叠。
确保次要范围足以满足集群大小和预期增长的需求。例如,对于 3 节点 Cloud Composer 环境,次要范围的网络前缀长度不得超过以下值:
- Pod:
/22
- 服务:
/27
请参阅创建 VPC 原生集群,了解有关配置 pod 的次要范围和服务的准则。
- Pod:
子网的主要地址范围应当能够适应预期增长的需求,并且必须考虑预留 IP 地址。 以前面的 3 节点环境为例,子网的主要地址范围的网络前缀长度不应超过
/29
。
准备工作
- 找到以下项目 ID 和项目编号:
- 宿主项目:共享 VPC 网络所属的项目。
- 服务项目:包含 Cloud Composer 环境的项目。
- 让您的组织做好准备。
- 在宿主项目和服务项目中启用 GKE API。
宿主项目配置
选择以下任一选项以分配和配置网络资源。 对于每个选项,您必须为 pod 和服务的次要 IP 地址范围命名。
- 创建新的 VPC 网络、子网和两个次要 IP 范围。创建子网时,请按照上述准则使用主要 IP 范围。作为子网定义的一部分,按照上述说明定义两个次要 IP 范围(用于 pod 和 Service)。
- 在现有 VPC 中创建子网和两个次要 IP 范围。创建子网时,请按照上述准则使用主要 IP 范围。作为子网定义的一部分,按照上述说明定义两个次要 IP 范围(用于 pod 和 Service)。
- 在现有子网和 VPC 中创建两个次要 IP 范围。按照上述说明定义两个次要 IP 范围(用于 pod 和 Service),避免名称和 IP 范围与现有次要范围发生冲突。
设置共享 VPC并关联一个服务项目,您将使用该项目来托管 Cloud Composer 环境。如果共享 VPC 已存在,请直接转到关联服务项目步骤。关联项目时,保留默认的 VPC 网络权限。
在项目级层将 compute.networkUser 角色授予 Google API 服务帐号 (SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com)。这是与 GKE 使用的共享 VPC 结合使用的代管式实例组的要求,因为创建实例等任务是由此类服务帐号执行的。
在该宿主项目中,向 GKE 服务帐号 (service-SERVICE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com) 授予
compute.networkUser
角色。为此,请转到 VPC 网络列表并选择目标网络。此权限必须在网络级层授予,以允许服务帐号设置 Cloud Composer 所需的 VPC 对等互连架构。向服务项目的 GKE 服务帐号授予
Host Service Agent User
角色。这样,服务项目的 GKE 服务帐号便可使用宿主项目的 GKE 服务帐号来配置共享网络资源。如果这是当前项目中的首个 Cloud Composer 环境,则您必须先预配 Composer 代理服务帐号:
gcloud beta services identity create --service=composer.googleapis.com
。如果是专用 IP 环境,请向 Composer 代理服务帐号 (service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) 授予 Composer Shared VPC Agent 角色,或者如果是公共 IP Composer 环境,请授予 Compute Network User 角色。
您已完成宿主项目的共享 VPC 网络配置。
后续步骤
使用 Cloud SDK 创建 Cloud Composer 环境,并以配置参数的形式提供宿主项目的网络和子网。