第 16 章 工作负载分区


工作负载分区将计算节点 CPU 资源划分为不同的 CPU 集。主要目标是将平台 pod 保留在指定的内核中,以避免中断客户工作负载的 CPU。

使用工作负载分区隔离 OpenShift Container Platform 服务、集群管理工作负载和基础架构 pod,以便在保留的一组 CPU 上运行。这样可确保集群部署中剩余的 CPU 没有被修改,并只可用于非平台工作负载。集群管理所需的最小保留 CPU 数量是 4 个 CPU Hyper-Threads (HT)。

在启用工作负载分区和管理 CPU 资源的情况下,没有正确配置的节点不允许通过节点准入 Webhook 加入集群。启用工作负载分区功能时,control plane 和 worker 的机器配置池将提供要使用的节点配置。向这些池添加新节点可确保在加入集群前正确配置它们。

目前,每个机器配置池必须具有统一配置,以确保在该池中的所有节点中正确设置了正确的 CPU 关联性。准入后,集群中的节点将自己识别为支持名为 management.workload.openshift.io/cores 的新资源类型,并准确报告其 CPU 容量。工作负载分区只能在集群安装过程中启用,方法是将额外的字段 cpuPartitioningMode 添加到 install-config.yaml 文件中。

启用工作负载分区后,management.workload.openshift.io/cores 资源允许调度程序根据主机的 cpushares 容量正确分配 pod,而不只是默认的 cpuset。这样可确保为工作负载分区场景更精确地分配资源。

工作负载分区确保 pod 配置中指定的 CPU 请求和限值被遵守。在 OpenShift Container Platform 4.16 或更高版本中,通过 CPU 分区为平台 pod 设置准确的 CPU 用量限制。因为工作负载分区使用 management.workload.openshift.io/cores 的自定义资源类型,因此请求和限制的值相同,因为 Kubernetes 对扩展资源的要求相同。但是,工作负载分区修改的注解可以正确地反映所需的限制。

注意

扩展资源无法过量使用,因此如果容器规格中存在扩展资源,则请求和限制必须相等。

16.1. 启用工作负载分区

使用工作负载分区时,集群管理 pod 被标注,以便将其正确分区到指定的 CPU 关联性中。这些 pod 通常在 Performance Profile 中保留值指定的最小大小 CPU 配置内运行。在计算应该为平台设置多少个保留 CPU 内核时,应考虑使用工作负载分区的额外第 2 天 Operator。

工作负载分区使用标准 Kubernetes 调度功能将用户工作负载与平台工作负载隔离。

注意

工作负载分区只能在集群安装过程中启用。您不能在安装后禁用工作负载分区。

使用这个流程在集群范围内启用工作负载分区:

流程

  • install-config.yaml 文件中,添加额外的 cpuPartitioningMode 字段,并将其设置为 AllNodes

    apiVersion: v1
    baseDomain: devcluster.openshift.com
    cpuPartitioningMode: AllNodes 1
    compute:
      - architecture: amd64
        hyperthreading: Enabled
        name: worker
        platform: {}
        replicas: 3
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      platform: {}
      replicas: 3
    1
    在安装时为 CPU 分区设置集群。默认值为 None
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.