12.6. 配置托管共享 VPC 网络的 GCP 项目
如果使用共享的 Virtual Private Cloud(VPC)在 Google Cloud Platform(GCP)中托管 OpenShift Container Platform 集群,您必须配置托管它的项目。
如果您已有托管共享 VPC 网络的项目,请查看本节以确保项目满足安装 OpenShift Container Platform 集群的所有要求。
流程
- 创建一个项目来托管您的 OpenShift Container Platform 集群的共享 VPC。请参阅 GCP 文档中的创建和管理 项目。
- 在托管共享 VPC 的项目中创建服务帐户。请参阅 GCP 文档中的 创建服务帐户。
为服务帐户授予适当的权限。您可以逐一授予权限,也可以为其分配
Owner
角色。请参阅将角色转换到特定资源的服务帐户。注意将服务帐户设置为项目的所有者是获取所需权限的最简单方法,这意味着该服务帐户对项目有完全的控制权。您必须确定提供这种能力所带来的风险是否可以接受。
托管共享 VPC 网络的项目的服务帐户需要以下角色:
- Compute 网络用户
- Compute Security Admin
- Deployment Manager Editor
- DNS Administrator
- Security Admin
- 网络管理管理员
12.6.1. 为 GCP 配置 DNS 复制链接链接已复制到粘贴板!
要安装 OpenShift Container Platform,您使用的 Google Cloud Platform(GCP)帐户必须在项目中有一个专用的公共托管区,托管您将集群安装到的共享 VPC 中。此区域必须对域具有权威。DNS 服务为集群外部连接提供集群 DNS 解析和名称查询。
流程
确定您的域或子域,以及注册商。您可以转移现有的域和注册商,或通过 GCP 或其他来源获取新的域和注册商。
注意如果您购买了新的域,则需要时间来传播相关的 DNS 更改。有关通过 Google 购买域的更多信息,请参阅 Google Domains。
在 GCP 项目中为您的域或子域创建一个公共托管区。请参阅 GCP 文档中的 创建公共区。
使用适当的根域,如
openshiftcorp.com 或
子域,如 cluster.openshiftcorp.com
。从托管区域记录中提取新的权威名称服务器。请参阅 GCP 文档中的 查找您的云 DNS 名称服务器。
您通常有四个名称服务器。
- 更新域所用名称服务器的注册商记录。例如,如果您将域注册到 Google Domains,请参阅 Google Domains 帮助中的以下主题: 如何切换到自定义名称服务器。
- 如果您将根域迁移到 Google Cloud DNS,请迁移您的 DNS 记录。请参阅 GCP 文档中的 Migrating to Cloud DNS。
- 如果您使用子域,请按照贵公司的步骤将其委派记录添加到父域。这个过程可能包括对您公司的 IT 部门或控制您公司的根域和 DNS 服务的部门发出的请求。
12.6.2. 在 GCP 中创建 VPC 复制链接链接已复制到粘贴板!
您必须在 Google Cloud Platform(GCP)中创建一个 VPC,供您的 OpenShift Container Platform 集群使用。您可以自定义 VPC 来满足您的要求。创建 VPC 的一种方法是修改提供的 Deployment Manager 模板。
如果不使用提供的 Deployment Manager 模板来创建 GCP 基础架构,您必须检查提供的信息并手动创建基础架构。如果您的集群没有正确初始化,您可能需要联系红帽支持并提供您的安装日志。
先决条件
- 配置 GCP 帐户。
流程
-
复制 VPC 的 Deployment Manager 模板一节中的模板, 并将它以
01_vpc.py
形式保存到计算机上。此模板描述了集群所需的 VPC。 导出资源定义所需的以下变量:
导出 control plane CIDR:
export MASTER_SUBNET_CIDR='10.0.0.0/17'
$ export MASTER_SUBNET_CIDR='10.0.0.0/17'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导出计算 CIDR:
export WORKER_SUBNET_CIDR='10.0.128.0/17'
$ export WORKER_SUBNET_CIDR='10.0.128.0/17'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将部署 VPC 网络和集群的区域导出到:
export REGION='<region>'
$ export REGION='<region>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
导出托管共享 VPC 的项目 ID 的变量:
export HOST_PROJECT=<host_project>
$ export HOST_PROJECT=<host_project>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导出属于主机项目的服务帐户电子邮件的变量:
export HOST_PROJECT_ACCOUNT=<host_service_account_email>
$ export HOST_PROJECT_ACCOUNT=<host_service_account_email>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
01_vpc.yaml
资源定义文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
gcloud
CLI 创建部署:gcloud deployment-manager deployments create <vpc_deployment_name> --config 01_vpc.yaml --project ${HOST_PROJECT} --account ${HOST_PROJECT_ACCOUNT}
$ gcloud deployment-manager deployments create <vpc_deployment_name> --config 01_vpc.yaml --project ${HOST_PROJECT} --account ${HOST_PROJECT_ACCOUNT}
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
<vpc_deployment_name>
,请指定要部署的 VPC 名称。
导出其他组件需要的 VPC 变量:
导出主机项目网络的名称:
export HOST_PROJECT_NETWORK=<vpc_network>
$ export HOST_PROJECT_NETWORK=<vpc_network>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导出主机项目 control plane 子网的名称:
export HOST_PROJECT_CONTROL_SUBNET=<control_plane_subnet>
$ export HOST_PROJECT_CONTROL_SUBNET=<control_plane_subnet>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导出主机项目计算子网的名称:
export HOST_PROJECT_COMPUTE_SUBNET=<compute_subnet>
$ export HOST_PROJECT_COMPUTE_SUBNET=<compute_subnet>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 设置共享 VPC。请参阅 GCP 文档中的 设置共享 VPC。
12.6.2.1. VPC 的 Deployment Manager 模板 复制链接链接已复制到粘贴板!
您可以使用以下 Deployment Manager 模板来部署 OpenShift Container Platform 集群所需的 VPC:
例 12.2. 01_VPC.py
Deployment Manager 模板