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.*
其他资源
- 如需有关 AWS Local Zones 和支持的实例类型和服务的更多信息,请参阅 AWS 文档中的 AWS Local Zones 功能。
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> 1
- 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
文件。
使用带有默认设置的边缘池的配置
apiVersion: v1 baseDomain: devcluster.openshift.com metadata: name: ipi-localzone platform: aws: region: us-west-2 subnets: - publicSubnetId-1 - publicSubnetId-2 - publicSubnetId-3 - privateSubnetId-1 - privateSubnetId-2 - privateSubnetId-3 - publicSubnetId-LocalZone-1 pullSecret: '{"auths": ...}' sshKey: ssh-ed25519 AAAA...
使用自定义实例类型使用边缘池的配置
apiVersion: v1 baseDomain: devcluster.openshift.com metadata: name: ipi-localzone compute: - name: edge platform: aws: type: m5.4xlarge platform: aws: region: us-west-2 subnets: - publicSubnetId-1 - publicSubnetId-2 - publicSubnetId-3 - privateSubnetId-1 - privateSubnetId-2 - privateSubnetId-3 - publicSubnetId-LocalZone-1 pullSecret: '{"auths": ...}' sshKey: ssh-ed25519 AAAA...
实例类型因位置而异。要验证集群将在其中运行的区域中的可用性,请参阅 AWS 文档。
使用自定义 EBS 类型使用边缘池的配置
apiVersion: v1 baseDomain: devcluster.openshift.com metadata: name: ipi-localzone compute: - name: edge platform: aws: rootVolume: type: gp3 size: 120 platform: aws: region: us-west-2 subnets: - publicSubnetId-1 - publicSubnetId-2 - publicSubnetId-3 - privateSubnetId-1 - privateSubnetId-2 - privateSubnetId-3 - publicSubnetId-LocalZone-1 pullSecret: '{"auths": ...}' sshKey: ssh-ed25519 AAAA...
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
属性的值。例如:... platform: aws: region: us-west-2 subnets: 1 - publicSubnetId-1 - publicSubnetId-2 - publicSubnetId-3 - privateSubnetId-1 - privateSubnetId-2 - privateSubnetId-3 - publicSubnetId-LocalZone-1 ...
- 1
- 在可用性和本地区域中创建的子网列表。
其他资源
- 如需有关 AWS 配置集和凭证配置的更多信息,请参阅 AWS 文档中的配置和凭证文件设置。