工作负载分区将计算节点CPU资源分离到不同的CPU集。主要目标是将平台Pod保持在指定的内核上,以避免中断客户工作负载正在运行的CPU。
工作负载分区将OpenShift Container Platform服务、集群管理工作负载和基础设施Pod隔离到一组保留的CPU上运行。这确保了集群部署中剩余的CPU不会被触及,并且仅供非平台工作负载使用。集群管理所需的最小保留CPU数量为四个CPU超线程 (HT)。
在启用工作负载分区和有效管理CPU资源的上下文中,未正确配置的节点将不允许通过节点准入Webhook加入集群。启用工作负载分区功能后,控制平面和工作节点的机器配置池将提供节点使用的配置。将新节点添加到这些池中将确保它们在加入集群之前已正确配置。
目前,节点必须每个机器配置池具有统一的配置,以确保在该池内的所有节点上设置正确的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对扩展资源的要求,请求和限制的值相同。但是,工作负载分区修改的注释正确地反映了所需的限制。
|
扩展资源不能过度承诺,因此如果容器规范中同时存在请求和限制,则请求和限制必须相等。
|