第 1 章 在 GCP 上安装
1.1. 配置 GCP 项目
在安装 OpenShift Container Platform 之前,您必须配置 Google Cloud Platform (GCP) 项目来托管它。
1.1.1. 创建一个 GCP 项目
为了安装 OpenShift Container Platform,您必须在您的 Google Cloud Platform (GCP) 账户中创建一个项目来托管它。
流程
- 创建一个项目来托管您的 OpenShift Container Platform 集群。请参阅 GCP 文档中的创建和管理项目。
1.1.2. 在 GCP 中启用 API 服务
Google Cloud Platform (GCP) 项目需要访问一些 API 服务来完成 OpenShift Container Platform 安装。
先决条件
- 创建了用于托管集群的项目。
流程
在托管集群的项目中启用如下所需的 API 服务。请参阅 GCP 文档中的启用服务。
表 1.1. 所需的 API 服务 API 服务 控制台服务名称 compute Engine API
compute.googleapis.com
Google Cloud API
cloudapis.googleapis.com
Cloud Resource Manager API
cloudresourcemanager.googleapis.com
Google DNS API
dns.googleapis.com
IAM Service Account Credentials API
iamcredentials.googleapis.com
Identity and Access Management (IAM) API
iam.googleapis.com
Service Management API
servicemanagement.googleapis.com
Service Usage API
serviceusage.googleapis.com
Google Cloud Storage JSON API
storage-api.googleapis.com
Cloud Storage
storage-component.googleapis.com
1.1.3. 为 GCP 配置 DNS
要安装 OpenShift Container Platform,您使用的 Google Cloud Platform (GCP) 帐户必须在托管 OpenShift Container Platform 集群的同一项目中有一个专用的公共托管区。此区域必须对域具有权威。DNS 服务为集群外部连接提供集群 DNS 解析和名称查询。
流程
标识您的域或子域,以及注册商(registrar)。您可以转移现有的域和注册商,或通过 GCP 或其他来源获取新的域和注册商。
注意如果您购买新域,则需要时间来传播相关的 DNS 更改。有关通过 Google 购买域的更多信息,请参阅 Google Domains。
在 GCP 项目中为您的域或子域创建一个公共托管区。请参阅 GCP 文档中的创建公共区。
使用合适的根域(如
openshiftcorp.com
)或子域(如clusters.openshiftcorp.com
)。从托管区记录中提取新的权威名称服务器。请参阅 GCP 文档中的查找您的云 DNS 名称服务器。
您通常有四个名称服务器。
- 更新域所用名称服务器的注册商记录。例如,如果您将域注册到了 Google Domains,请参阅 Google Domains 帮助中的以下主题:如何切换到自定义名称服务器。
- 如果您将根域迁移到 Google Cloud DNS,请迁移您的 DNS 记录。请参阅 GCP 文档中的 Migrating to Cloud DNS 。
- 如果您使用子域,请按照您公司的流程将其委派记录添加到父域。这个过程可能包括对您公司的 IT 部门或控制您公司的根域和 DNS 服务的部门提出请求。
1.1.4. GCP 帐户限值
OpenShift Container Platform 集群使用诸多 Google Cloud Platform (GCP) 组件,默认的配额不会影响您安装默认 OpenShift Container Platform 集群的能力。
默认集群中包含三台计算机器和三台 control plane 机器,使用了以下资源。请注意,一些资源只在 bootstrap 过程中需要,会在集群部署后删除。
服务 | 组件 | 位置 | 所需的资源总数 | bootstrap 后删除的资源 |
---|---|---|---|---|
服务帐户 | IAM | 全局 | 5 | 0 |
防火墙规则 | Compute | 全局 | 11 | 1 |
转发规则 | Compute | 全局 | 2 | 0 |
使用的全局 IP 地址 | Compute | 全局 | 4 | 1 |
健康检查 | Compute | 全局 | 3 | 0 |
镜像 | Compute | 全局 | 1 | 0 |
网络 | Compute | 全局 | 2 | 0 |
静态 IP 地址 | Compute | 区域 | 4 | 1 |
路由器 | Compute | 全局 | 1 | 0 |
Routes | Compute | 全局 | 2 | 0 |
子网 | Compute | 全局 | 2 | 0 |
目标池 | Compute | 全局 | 3 | 0 |
CPU | Compute | 区域 | 28 | 4 |
持久性磁盘 SSD (GB) | Compute | 区域 | 896 | 128 |
如果在安装过程中存在任何配额不足的情况,安装程序会显示一个错误信息,包括超过哪个配额,以及相关的区域。
请考虑您的集群的实际大小、预定的集群增长以及来自与您的帐户关联的其它集群的使用情况。CPU 、静态 IP 地址和持久性磁盘 SSD (Storage) 配额是最可能不足的。
如果您计划在以下区域之一部署集群,您将超过最大存储配额,并可能会超过 CPU 配额限制:
- asia-east2
- asia-northeast2
- asia-south1
- domain-southeast1
- europe-north1
- europe-west2
- europe-west3
- europe-west6
- northamerica-northeast1
- southamerica-east1
- us-west2
您可以从 GCP 控制台增加资源配额,但可能需要提交一个支持问题单。务必提前规划集群大小,以便在安装 OpenShift Container Platform 集群前有足够的时间来等待支持问题单被处理。
1.1.5. 在 GCP 中创建服务帐户
OpenShift Container Platform 需要一个 Google Cloud Platform (GCP) 服务帐户,用于访问 Google API 中数据的验证和授权。如果您没有包含项目中所需角色的现有 IAM 服务帐户,您必须创建一个。
先决条件
- 创建了用于托管集群的项目。
流程
- 在用于托管 OpenShift Container Platform 集群的项目中,创建一个新服务帐户。请参阅 GCP 文档中的创建服务账户。
为服务帐户授予适当的权限。您可以逐一授予权限,也可以为其分配
Owner
角色。请参阅将角色授予特定资源的服务帐户。注意获得所需权限最简单的方法是把服务帐户设置为项目的拥有者(Owner),这意味着该服务帐户对项目有完全的控制权。您必须考虑这样设定所带来的的风险是否可以接受。
以 JSON 格式创建服务帐户密钥。请参阅 GCP 文档中的创建服务帐户密钥。
创建集群时需要该服务帐户密钥。
1.1.5.1. 所需的 GCP 权限
如果将 Owner
角色附加到您创建的服务帐户,您向该服务帐户授予所有的权限,包括安装 OpenShift Container Platform 所需的权限。要部署 OpenShift Container Platform 集群,服务帐户需要以下权限:
安装程序所需的角色
- Compute Admin
- DNS Administrator
- Security Admin
- Service Account Admin
- Service Account User
- Storage Admin
安装过程中创建网络资源所需的角色
- DNS Administrator
可选角色
若要使集群为其 Operator 创建新的有限凭证,请添加以下角色:
- Service Account Key Admin
以下角色将应用到 control plane 或计算机器使用的服务帐户:
帐户 | 角色 |
---|---|
Control Plane |
|
| |
| |
| |
| |
Compute |
|
|
1.1.6. 支持的 GCP 区域
您可以将 OpenShift Container Platform 集群部署到下列 Google Cloud Platform (GCP) 区域:
- asia-east1(台湾彰化县)
- asia-east2(香港)
- asia-northeast1 (日本东京)
- asia-northeast2(日本大阪)
- asia-south1(印度孟买)
- asia-southeast1(新加坡裕廊西)
- australia-southeast1(澳大利亚悉尼)
- europe-north1(芬兰哈米纳)
- europe-west1(比利时圣吉斯兰)
- europe-west2(英国伦敦)
- europe-west3(德国法兰克福)
- europe-west4(荷兰埃姆斯哈文)
- europe-west6(瑞士苏黎世)
- northamerica-northeast1(加拿大魁北克蒙特利尔)
- southamerica-east1(巴西圣保罗)
- us-central1(美国爱荷华州康瑟尔布拉夫斯)
- us-east1(美国南卡罗来纳州蒙克斯科纳)
- us-east4(美国北弗吉尼亚州阿什伯恩)
- us-west1(美国俄勒冈州达拉斯)
- us-west2(美国加利福尼亚州洛杉矶)