This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.5. 使用 NUMA 感知调度程序调度工作负载
您可以使用 Deployment CR 将工作负载调度到 NUMA 感知调度程序,该 CR 指定处理工作负载的最低所需资源。
以下示例部署使用 NUMA 感知调度示例工作负载。
先决条件
-
安装 OpenShift CLI(
oc)。 -
以具有
cluster-admin特权的用户身份登录。 - 安装 NUMA Resources Operator 并部署 NUMA 感知辅助调度程序。
流程
运行以下命令,获取集群中部署的 NUMA 感知调度程序名称:
oc get numaresourcesschedulers.nodetopology.openshift.io numaresourcesscheduler -o json | jq '.status.schedulerName'
$ oc get numaresourcesschedulers.nodetopology.openshift.io numaresourcesscheduler -o json | jq '.status.schedulerName'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
topo-aware-scheduler
topo-aware-schedulerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
DeploymentCR,它使用名为topo-aware-scheduler的调度程序,例如:将以下 YAML 保存到
nro-deployment.yaml文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
schedulerName必须与集群中部署的 NUMA 感知调度程序的名称匹配,如topo-aware-scheduler。
运行以下命令来创建
DeploymentCR:oc create -f nro-deployment.yaml
$ oc create -f nro-deployment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证部署是否成功:
oc get pods -n openshift-numaresources
$ oc get pods -n openshift-numaresourcesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证
topo-aware-scheduler是否在调度部署的 pod:oc describe pod numa-deployment-1-56954b7b46-pfgw8 -n openshift-numaresources
$ oc describe pod numa-deployment-1-56954b7b46-pfgw8 -n openshift-numaresourcesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 130m topo-aware-scheduler Successfully assigned openshift-numaresources/numa-deployment-1-56954b7b46-pfgw8 to compute-0.example.com
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 130m topo-aware-scheduler Successfully assigned openshift-numaresources/numa-deployment-1-56954b7b46-pfgw8 to compute-0.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意请求的资源超过可用于调度的部署将失败,并显示
MinimumReplicasUnavailable错误。当所需资源可用时,部署会成功。Pod 会一直处于Pending状态,直到所需资源可用。验证是否为节点列出了预期的分配资源。运行以下命令:
oc describe noderesourcetopologies.topology.node.k8s.io
$ oc describe noderesourcetopologies.topology.node.k8s.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 由于已分配给有保证 pod 的资源,
可用的容量会减少。
通过保证 pod 使用的资源从
noderesourcetopologies.topology.node.k8s.io中列出的可用节点资源中减去。对具有
Best-effort或Burstable服务质量 (qosClass) 的pod 的资源分配不会反映在noderesourcetopologies.topology.node.k8s.io下的 NUMA 节点资源中。如果 pod 消耗的资源没有反映在节点资源计算中,请运行以下命令验证 pod 的Guaranteed具有qosClass:oc get pod <pod_name> -n <pod_namespace> -o jsonpath="{ .status.qosClass }"$ oc get pod <pod_name> -n <pod_namespace> -o jsonpath="{ .status.qosClass }"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Guaranteed
GuaranteedCopy to Clipboard Copied! Toggle word wrap Toggle overflow