This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.9.2. 自动为节点分配资源
OpenShift Container Platform 可以自动决定与特定机器配置池关联的节点的最佳 system-reserved
CPU 和内存资源,并在节点启动时使用这些值更新节点。默认情况下,system-reserved
CPU 为 500m
,system-reserved
内存为 1Gi
。
要在节点上自动决定并分配 system-reserved
资源,请创建一个 KubeletConfig
自定义资源(CR)来设置 autoSizingReserved: true
参数。各个节点上的脚本根据每个节点上安装的 CPU 和内存容量,计算相应保留资源的最佳值。该脚本考虑了增加的容量要求保留资源的相应增加。
自动确定最佳的 system-reserved
设置可确保集群高效运行,并防止因为 CRI-O 和 kubelet 等系统组件的资源丢失而出现节点故障,而无需手动计算和更新值
此功能默认为禁用。
先决条件
输入以下命令为您要配置的节点类型获取与静态
MachineConfigPool
对象关联的标签:oc edit machineconfigpool <name>
$ oc edit machineconfigpool <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc edit machineconfigpool worker
$ oc edit machineconfigpool worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 标签会出现在
Labels
下。
提示如果标签不存在,请添加键/值对,例如:
oc label machineconfigpool worker custom-kubelet=small-pods
$ oc label machineconfigpool worker custom-kubelet=small-pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
为配置更改创建自定义资源(CR):
资源分配 CR 的示例配置
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的示例在所有 worker 节点上启用自动资源分配。OpenShift Container Platform 排空节点、应用 kubelet 配置并重启节点。
运行以下命令来创建 CR:
oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
输入以下命令登录到您配置的节点:
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/host
设置为 debug shell 中的根目录:chroot /host
# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看
/etc/node-sizing.env
文件:输出示例
SYSTEM_RESERVED_MEMORY=3Gi SYSTEM_RESERVED_CPU=0.08
SYSTEM_RESERVED_MEMORY=3Gi SYSTEM_RESERVED_CPU=0.08
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubelet 使用
/etc/node-sizing.env
文件中的system-reserved
值。在上例中,worker 节点分配了0.08
CPU 和 3 Gi 内存。显示最佳值可能需要几分钟时间。