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 配置文件。
流程
更新 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 文件。在 MicroShiftconfig.yaml
文件中嵌入 kubelet 配置,以便为工作负载启用和配置 CPU Manager。MicroShift
config.yaml
示例# ... kubelet: reservedSystemCPUs: 0,6,7 1 cpuManagerPolicy: static cpuManagerPolicyOptions: full-pcpus-only: "true" 2 cpuManagerReconcilePeriod: 5s # ...
创建 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 # ...
为 MicroShift 和 CRI-O 服务创建并更新带有
CPUAffinity
值的 systemd 配置文件:在路径
/etc/systemd/system/microshift.service.d/microshift-cpuaffinity.conf
中创建 MicroShift 服务 systemd 文件。MicroShift 将使用 systemdCPUAffinity
值进行固定。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 # ...