1.4. Control plane 节点大小
控制平面节点资源要求取决于集群中的节点和对象的数量和类型。以下控制平面节点大小是基于控制平面密度测试的结果,或 Clusterdensity。此测试会在给定很多命名空间中创建以下对象:
- 1 个镜像流
- 1 个构建
-
5 个部署,其中 2 个 pod 副本处于
睡眠
状态,每个状态都挂载 4 个 secret、4 个配置映射和 1 Downward API 卷 - 5 个服务,每个服务都指向前一个部署的 TCP/8080 和 TCP/8443 端口
- 1 个路由指向上一个服务的第一个路由
- 包含 2048 个随机字符串字符的 10 个 secret
- 10 个配置映射包含 2048 个随机字符串字符
worker 节点数量 | 集群密度(命名空间) | CPU 内核 | 内存 (GB) |
---|---|---|---|
24 | 500 | 4 | 16 |
120 | 1000 | 8 | 32 |
252 | 4000 | 16 | 64 |
501 | 4000 | 16 | 96 |
在具有三个 master 或 control plane 节点的大型高密度集群中,当其中一个节点停止、重启或失败时,CPU 和内存用量将会激增。故障可能是因为电源、网络或底层基础架构出现意外问题,除了在关闭集群后重启集群以节约成本的情况下。其余两个 control plane 节点必须处理负载才能高度可用,从而增加资源使用量。另外,在升级过程中还会有这个预期,因为 master 被封锁、排空并按顺序重新引导,以应用操作系统更新以及 control plane Operator 更新。为了避免级联失败,请将 control plane 节点上的总体 CPU 和内存资源使用量保留为最多 60% 的所有可用容量,以处理资源使用量激增。相应地增加 control plane 节点上的 CPU 和内存,以避免因为缺少资源而造成潜在的停机。
节点大小取决于集群中的节点和对象数量。它还取决于集群上是否正在主动创建这些对象。在创建对象时,control plane 在资源使用量方面与对象处于运行(running)
阶段的时间相比更活跃。
Operator Lifecycle Manager(OLM)在 control plane 节点上运行,其内存占用量取决于 OLM 在集群中管理的命名空间和用户安装的 operator 的数量。Control plane 节点需要相应地调整大小,以避免 OOM 终止。以下数据基于集群最大测试的结果。
命名空间数量 | 处于空闲状态的 OLM 内存(GB) | 安装了 5 个用户 operator 的 OLM 内存(GB) |
---|---|---|
500 | 0.823 | 1.7 |
1000 | 1.2 | 2.5 |
1500 | 1.7 | 3.2 |
2000 | 2 | 4.4 |
3000 | 2.7 | 5.6 |
4000 | 3.8 | 7.6 |
5000 | 4.2 | 9.02 |
6000 | 5.8 | 11.3 |
7000 | 6.6 | 12.9 |
8000 | 6.9 | 14.8 |
9000 | 8 | 17.7 |
10,000 | 9.9 | 21.6 |
您只能为以下配置修改正在运行的 OpenShift Container Platform 4.10 集群中的 control plane 节点大小:
- 使用用户置备的安装方法安装的集群。
- 使用安装程序置备的基础架构安装方法安装的 AWS 集群。
对于所有其他配置,您必须估计节点总数并在安装过程中使用推荐的 control plane 节点大小。
建议基于在带有 OpenShiftSDN 作为网络插件的 OpenShift Container Platform 集群上捕获的数据点。
在 OpenShift Container Platform 4.10 中,与 OpenShift Container Platform 3.11 及之前的版本相比,系统现在默认保留半个 CPU 内核(500 millicore)。确定大小时应该考虑这一点。
1.4.1. 为 control plane 机器选择更大的 Amazon Web Services 实例类型
如果 Amazon Web Services (AWS) 集群中的 control plane 机器需要更多资源,您可以为 control plane 机器选择更大的 AWS 实例类型。
1.4.1.1. 使用 AWS 控制台更改 Amazon Web Services 实例类型
您可以通过更新 AWS 控制台中的实例类型来更改 control plane 机器使用的 Amazon Web Services (AWS) 实例类型。
先决条件
- 您可以使用修改集群的 EC2 实例所需的权限访问 AWS 控制台。
-
您可以使用具有
cluster-admin
角色的用户访问 OpenShift Container Platform 集群。
流程
- 打开 AWS 控制台并为 control plane 机器获取实例。
选择一个 control plane 机器实例。
- 对于所选 control plane 机器,通过创建 etcd 快照来备份 etcd 数据。如需更多信息,请参阅 "恢复 etcd"。
- 在 AWS 控制台中,停止 control plane 机器实例。
-
选择已停止的实例,然后点 Actions
Instance Settings Change instance type。 -
将实例更改为较大的类型,确保类型与之前选择相同,并应用更改。例如,您可以将
m6i.xlarge
更改为m6i.2xlarge
或m6i.4xlarge
。 - 启动实例。
-
如果您的 OpenShift Container Platform 集群具有实例对应的
Machine
对象,请更新对象的实例类型以匹配 AWS 控制台中设置的实例类型。
- 为每个 control plane 机器重复此步骤。
其他资源