14.10. 创建用于 AWS 的安装文件
要在 Amazon Web Services (AWS) 上安装 OpenShift Container Platform 并使用 AWS Local Zones,您必须生成安装程序部署集群所需的文件,并进行修改,以便集群只创建要使用的机器。您可以生成和自定义 install-config.yaml
文件,并为该文件配置添加区域子网。
14.10.1. 集群安装的最低资源要求 复制链接链接已复制到粘贴板!
每台集群机器都必须满足以下最低要求:
机器 | 操作系统 | vCPU [1] | 虚拟内存 | Storage | 每秒输入/输出 (IOPS) [2] |
---|---|---|---|---|---|
bootstrap | RHCOS | 4 | 16 GB | 100 GB | 300 |
Control plane(控制平面) | RHCOS | 4 | 16 GB | 100 GB | 300 |
Compute | RHCOS、RHEL 8.6 及更新版本 [3] | 2 | 8 GB | 100 GB | 300 |
- 当未启用并发多线程 (SMT) 或超线程时,一个 vCPU 相当于一个物理内核。启用后,使用以下公式来计算对应的比例:(每个内核数的线程)× sockets = vCPU。
- OpenShift Container Platform 和 Kubernetes 对磁盘性能非常敏感,建议使用更快的存储速度,特别是 control plane 节点上需要 10 ms p99 fsync 持续时间的 etcd。请注意,在许多云平台上,存储大小和 IOPS 可一起扩展,因此您可能需要过度分配存储卷来获取足够的性能。
- 与所有用户置备的安装一样,如果您选择在集群中使用 RHEL 计算机器,则负责所有操作系统生命周期管理和维护,包括执行系统更新、应用补丁和完成所有其他必要的任务。RHEL 7 计算机器的使用已弃用,并已在 OpenShift Container Platform 4.10 及更新的版本中删除。
从 OpenShift Container Platform 版本 4.13 开始,RHCOS 基于 RHEL 版本 9.2,它更新了微架构要求。以下列表包含每个架构需要的最小指令集架构 (ISA):
- x86-64 体系结构需要 x86-64-v2 ISA
- ARM64 架构需要 ARMv8.0-A ISA
- IBM Power 架构需要 Power 9 ISA
- s390x 架构需要 z14 ISA
如需更多信息,请参阅 RHEL 架构。
如果平台的实例类型满足集群机器的最低要求,则 OpenShift Container Platform 支持使用它。
14.10.2. 为 AWS 测试的实例类型 复制链接链接已复制到粘贴板!
以下 Amazon Web Services (AWS) 实例类型已使用 OpenShift Container Platform 测试,以用于 AWS Local Zones。
将以下图中包含的机器类型用于 AWS 实例。如果您使用没有在图中列出的实例类型,请确保使用的实例大小与集群安装"最小资源要求"中列出的最少资源要求匹配。
例 14.3. 基于 AWS 本地区的 64 位 x86 架构的机器类型
-
c5.*
-
c5d.*
-
m6i.*
-
m5.*
-
r5.*
-
t3.*
14.10.3. 创建安装配置文件 复制链接链接已复制到粘贴板!
生成并自定义安装程序部署集群所需的安装配置文件。
先决条件
- 已获取 OpenShift Container Platform 安装程序和集群的 pull secret。
-
使用红帽发布的附带 Red Hat Enterprise Linux CoreOS(RHCOS)AMI 检查您是否将集群部署到一个区域。如果您要部署到需要自定义 AMI 的区域,如 AWS GovCloud 区域,您必须手动创建
install-config.yaml
文件。
流程
创建
install-config.yaml
文件。进入包含安装程序的目录并运行以下命令:
./openshift-install create install-config --dir <installation_directory>
$ ./openshift-install create install-config --dir <installation_directory>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
<installation_directory>
,请指定要存储安装程序创建的文件的目录名称。
重要指定一个空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
在提示符处,提供云的配置详情:
可选: 选择用于访问集群机器的 SSH 密钥。
注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent
进程使用的 SSH 密钥。- 选择 aws 作为目标平台。
如果计算机上没有保存 AWS 配置集,请为您配置用于运行安装程序的用户输入 AWS 访问密钥 ID 和 secret 访问密钥。
注意AWS 访问密钥 ID 和 secret 访问密钥存储在安装主机上当前用户主目录中的
~/.aws/credentials
中。如果文件中不存在导出的配置集凭证,安装程序会提示您输入凭证。您向安装程序提供的所有凭证都存储在文件中。- 选择要将集群部署到的 AWS 区域。您指定的区域必须是包含您为 AWS 帐户选择的区域相同的区域。
- 选择您为集群配置的 Route 53 服务的基域。
- 为集群输入描述性名称。
- 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret。
可选:备份
install-config.yaml
文件。重要install-config.yaml
文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。
14.10.4. AWS 本地区的边缘计算池 复制链接链接已复制到粘贴板!
OpenShift Container Platform 4.12 引入了一个新的计算池 edge,用于在远程区中使用。边缘计算池配置在 AWS Local Zone 位置之间很常见。但是,由于 Local Zone 资源上的 EC2 和 EBS 等资源的类型和大小限制,创建的默认实例类型可能与传统的 worker 池不同。
Local Zone 位置的默认 Elastic Block Store (EBS) 是 gp2
,它与常规 worker 池不同。根据区上的实例产品,边缘计算池中的每个 Local Zone 使用的实例类型可能与 worker 池不同。
边缘计算池创建新的标签,供开发人员用来将应用程序部署到 AWS Local Zone 节点上。新标签包括:
-
node-role.kubernetes.io/edge=''
-
machine.openshift.io/zone-type=local-zone
-
machine.openshift.io/zone-group=$ZONE_GROUP_NAME
默认情况下,只有在用户在列表 platform.aws.subnets
中添加 AWS Local Zone 子网 ID 时,系统才会创建边缘计算池清单。
默认情况下,边缘计算机器集具有 NoSchedule 污点
,以防止将常规工作负载分散到这些机器上。只有 pod 规格中定义了容限,用户才能运行用户工作负载。
以下示例演示了使用边缘机器池的 install-config.yaml
文件。
使用带有默认设置的边缘池的配置
使用自定义实例类型使用边缘池的配置
实例类型因位置而异。要验证集群将在其中运行的区域中的可用性,请参阅 AWS 文档。
使用自定义 EBS 类型使用边缘池的配置
EBS 类型因位置而异。查看 AWS 文档以验证集群将在其中运行的 Local Zone 中的可用性。
14.10.4.1. Edge 计算池和 AWS 本地区域 复制链接链接已复制到粘贴板!
边缘 worker 节点是在 AWS Local Zones 位置中运行的污点 worker 节点。
在部署使用本地区的集群时:
- 本地区域中的 Amazon EC2 实例比可用区中的 Amazon EC2 实例的成本更高。
- 应用程序和最终用户之间的延迟较低在本地区域中,并且可能因位置而异。例如,对于某些工作负载,在地区与可用性区域之间混合了路由器,则对一些工作负载会有一个延迟影响。
-
根据网络插件,如果在
install-config.yaml
上检测到 Local Zone 子网时,cluster-network 最大传输单元 (MTU) 会自动调整为 AWS 的限制。例如,对于 OVN-Kubernetes,调整的值为 1200,OpenShift SDN 为 1250。如果启用了其他功能,则需要手动调整 MTU。
通常,本地区中的 Amazon EC2 实例和 Region 中的 Amazon EC2 实例之间的最大传输单元 (MTU) 为 1300。如需更多信息,请参阅 AWS 文档中的 Local Zones 如何工作。对于开销,集群网络 MTU 必须总是小于 EC2 MTU。具体开销由您的网络插件决定,例如:
-
OVN-Kubernetes:
100 字节
-
OpenShift SDN:
50 字节
网络插件可以提供额外的功能,如 IPsec,它们还必须减少 MTU。如需更多信息,请参阅文档。
14.10.5. 修改安装配置文件以使用 AWS 本地区域子网 复制链接链接已复制到粘贴板!
修改 install-config.yaml
文件,使其包含 AWS Local Zones 子网。
先决条件
- 您使用"在 AWS Local Zones 中创建子网"流程创建子网。
-
您使用"创建安装配置文件"流程创建了
install-config.yaml
文件。
流程
添加 VPC 和 Local Zone 子网作为
platform.aws.subnets
属性的值。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在可用性和本地区域中创建的子网列表。