5.9.2. 自动为节点分配资源


OpenShift Container Platform 可以自动决定与特定机器配置池关联的节点的最佳 system-reserved CPU 和内存资源,并在节点启动时使用这些值更新节点。默认情况下,system-reserved CPU 为 500msystem-reserved 内存为 1Gi

要在节点上自动决定并分配 system-reserved 资源,请创建一个 KubeletConfig 自定义资源(CR)来设置 autoSizingReserved: true 参数。各个节点上的脚本根据每个节点上安装的 CPU 和内存容量,计算相应保留资源的最佳值。该脚本考虑了增加的容量要求保留资源的相应增加。

自动确定最佳的 system-reserved 设置可确保集群高效运行,并防止因为 CRI-O 和 kubelet 等系统组件的资源丢失而出现节点故障,而无需手动计算和更新值

此功能默认为禁用。

先决条件

  1. 输入以下命令为您要配置的节点类型获取与静态 MachineConfigPool 对象关联的标签:

    $ oc edit machineconfigpool <name>

    例如:

    $ oc edit machineconfigpool worker

    输出示例

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfigPool
    metadata:
      creationTimestamp: "2022-11-16T15:34:25Z"
      generation: 4
      labels:
        pools.operator.machineconfiguration.openshift.io/worker: "" 1
      name: worker
     ...

    1
    标签会出现在 Labels 下。
    提示

    如果标签不存在,请添加键/值对,例如:

    $ oc label machineconfigpool worker custom-kubelet=small-pods

流程

  1. 为配置更改创建自定义资源(CR):

    资源分配 CR 的示例配置

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: dynamic-node 1
    spec:
      kubeletConfig:
        autoSizingReserved: true 2
      machineConfigPoolSelector:
        matchLabels:
          pools.operator.machineconfiguration.openshift.io/worker: "" 3

    1
    为 CR 分配一个名称。
    2
    autoSizingReserved 参数设置为 true,以允许 OpenShift Container Platform 在与指定标签关联的节点上自动决定并分配 system-reserved 资源。要在这些节点上禁用自动分配,请将此参数设置为 false
    3
    指定机器配置池中的标签。

    前面的示例在所有 worker 节点上启用自动资源分配。OpenShift Container Platform 排空节点、应用 kubelet 配置并重启节点。

  2. 运行以下命令来创建 CR:

    $ oc create -f <file_name>.yaml

验证

  1. 输入以下命令登录到您配置的节点:

    $ oc debug node/<node_name>
  2. /host 设置为 debug shell 中的根目录:

    # chroot /host
  3. 查看 /etc/node-sizing.env 文件:

    输出示例

    SYSTEM_RESERVED_MEMORY=3Gi
    SYSTEM_RESERVED_CPU=0.08

    kubelet 使用 /etc/node-sizing.env 文件中的 system-reserved 值。在上例中,worker 节点分配了 0.08 CPU 和 3 Gi 内存。显示最佳值可能需要几分钟时间。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.