8.2. 工作负载分区


工作负载分区将节点 CPU 资源划分为不同的 CPU 集。主要目标是限制所有 control plane 组件的 CPU 使用量,为用户的工作负载保留其余设备 CPU 资源。

工作负载分区将保留的 CPU 分配给 MicroShift 服务、集群管理工作负载和基础架构 pod,确保集群部署中剩余的 CPU 不受影响,并只可用于非平台工作负载。

8.2.1. 启用工作负载分区

要在 MicroShift 上启用工作负载分区,请进行以下配置更改:

  • 更新 MicroShift config.yaml 文件,使其包含 kubelet 配置文件。
  • 创建 CRI-O systemd 和配置文件。
  • 分别为 MicroShift 和 CRI-O 服务创建和更新 systemd 配置文件。

流程

  1. 更新 MicroShift config.yaml 文件,使其包含 kubelet 配置文件,以便为工作负载启用和配置 CPU Manager:

    • 在路径 /etc/kubernetes/openshift-workload-pinning 中创建 kubelet 配置文件。kubelet 配置指示 kubelet 根据容量和可分配 CPU 修改节点资源。

      kubelet 配置示例

      # ...
      {
        "management": {
          "cpuset": "0,6,7" 1
        }
      }
      # ...

      1
      cpuset 适用于具有 8 个 VCPU (4 个内核)的计算机,并在整个文档中有效。
    • 更新路径 /etc/microshift/config.yaml 中的 MicroShift config.yaml 文件。在 MicroShift config.yaml 文件中嵌入 kubelet 配置,以便为工作负载启用和配置 CPU Manager。

      MicroShift config.yaml 示例

      # ...
      kubelet:
        reservedSystemCPUs: 0,6,7 1
        cpuManagerPolicy: static
        cpuManagerPolicyOptions:
          full-pcpus-only: "true" 2
        cpuManagerReconcilePeriod: 5s
      # ...

      1
      用于系统守护进程和中断/计时器的专用 cpuset。
      2
      kubelet 配置将 CPUManagerPolicyOptions 选项设置为 full-pcpus-only,以确保将整个内核分配给容器工作负载。
  2. 创建 CRI-O systemd 和配置文件:

    • 在路径 /etc/crio/crio.conf.d/20-microshift-workload-partition.conf 中创建 CRI-O 配置文件,该文件会覆盖 11-microshift-ovn.conf 文件中已存在的默认配置。

      CRI-O 配置示例

      # ...
      [crio.runtime]
      infra_ctr_cpuset = "0,6,7"
      
      [crio.runtime.workloads.management]
      activation_annotation = "target.workload.openshift.io/management"
      annotation_prefix = "resources.workload.openshift.io"
      resources = { "cpushares" = 0, "cpuset" = "0,6,7" }
      # ...

    • 在路径 /etc/systemd/system/crio.service.d/microshift-cpuaffinity.conf 中为 CRI-O 创建 systemd 文件。

      CRI-O systemd 配置示例

      # ...
      [Service]
      CPUAffinity=0,6,7
      # ...

  3. 为 MicroShift 和 CRI-O 服务创建并更新带有 CPUAffinity 值的 systemd 配置文件:

    • 在路径 /etc/systemd/system/microshift.service.d/microshift-cpuaffinity.conf 中创建 MicroShift 服务 systemd 文件。MicroShift 将使用 systemd CPUAffinity 值进行固定。

      MicroShift 服务 systemd 配置示例

      # ...
      [Service]
      CPUAffinity=0,6,7
      # ...

    • 更新 MicroShift ovs-vswitchd systemd 文件中的 CPUAffinity 值,该文件路径 /etc/systemd/system/ovs-vswitchd.service.d/microshift-cpuaffinity.conf

      MicroShift ovs-vswitchd systemd 配置示例

      # ...
      [Service]
      CPUAffinity=0,6,7
      # ...

    • 更新路径 /etc/systemd/system/ovsdb-server.service.d/microshift-cpuaffinity.conf中的 MicroShift ovsdb-server systemd 文件中的 CPUAffinity

      MicroShift ovsdb-server systemd 配置示例

      # ...
      [Service]
      CPUAffinity=0,6,7
      # ...

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.