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-scheduler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
Deployment
CR,它使用名为topo-aware-scheduler
的调度程序,例如:将以下 YAML 保存到
nro-deployment.yaml
文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
schedulerName
必须与集群中部署的 NUMA 感知调度程序的名称匹配,如topo-aware-scheduler
。
运行以下命令来创建
Deployment
CR:oc create -f nro-deployment.yaml
$ oc create -f nro-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证部署是否成功:
oc get pods -n openshift-numaresources
$ oc get pods -n openshift-numaresources
Copy 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-numaresources
Copy 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.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意请求的资源超过可用于调度的部署将失败,并显示
MinimumReplicasUnavailable
错误。当所需资源可用时,部署会成功。Pod 会一直处于Pending
状态,直到所需资源可用。验证是否为节点列出了预期的分配资源。运行以下命令:
oc describe noderesourcetopologies.topology.node.k8s.io
$ oc describe noderesourcetopologies.topology.node.k8s.io
Copy 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
Guaranteed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow