第 6 章 Dynamic Accelerator Slicer (DAS) Operator
Dynamic Accelerator Slicer Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
Dynamic Accelerator Slicer (DAS) Operator 允许您在 OpenShift Container Platform 中动态分片 GPU 加速器,而不依赖在节点引导时定义的静态分片 GPU。这可让您根据特定工作负载需求动态分片 GPU,确保有效的资源利用率。
如果您不知道集群中每个节点前需要的所有加速器分区,则动态分片很有用。
DAS Operator 目前包含 NVIDIA Multi-Instance GPU (MIG) 的参考实施,并在以后支持其他供应商(如 NVIDIA MPS 或 GPU)的其它技术。
限制:
使用 Dynamic Accelerator Slicer Operator 时有以下限制:
- 您需要识别潜在的不兼容性,并确保系统可以与各种 GPU 驱动程序和操作系统无缝配合工作。
- Operator 只适用于特定的 MIG 兼容 NVIDIA GPU 和驱动程序,如 H100 和 A100。
- Operator 无法只使用节点的 GPU 的子集。
- NVIDIA 设备插件无法与 Dynamic Accelerator Slicer Operator 一起使用来管理集群的 GPU 资源。
DAS Operator 设计为使用启用 MIG 的 GPU。它分配 MIG 片段而不是整个 GPU。安装 DAS Operator 可防止通过 NVIDIA 设备插件(如 nvidia.com/gpu: "1"
)使用标准资源请求来分配整个 GPU。
6.1. 安装 Dynamic Accelerator Slicer Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 OpenShift Container Platform Web 控制台或 OpenShift CLI 安装 Dynamic Accelerator Slicer (DAS) Operator。
6.1.1. 使用 Web 控制台安装 Dynamic Accelerator Slicer Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 OpenShift Container Platform Web 控制台安装 Dynamic Accelerator Slicer (DAS) Operator。
先决条件
-
可以使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群。 已安装所需的先决条件:
- cert-manager Operator for Red Hat OpenShift
- Node Feature Discovery (NFD) Operator
- NVIDIA GPU Operator
- NodeFeatureDiscovery CR
流程
为 MIG 支持配置 NVIDIA GPU Operator:
-
在 OpenShift Container Platform web 控制台中导航至 Operators
Installed Operators。 - 从安装的 Operator 列表中选择 NVIDIA GPU Operator。
- 点 ClusterPolicy 选项卡,然后点 Create ClusterPolicy。
在 YAML 编辑器中,将默认内容替换为以下集群策略配置,以禁用默认的 NVIDIA 设备插件并启用 MIG 支持:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create 应用集群策略。
-
进入到 Workloads
Pods,再选择 nvidia-gpu-operator
命名空间来监控集群策略部署。 等待 NVIDIA GPU Operator 集群策略达到
Ready
状态。您可以通过以下方法监控它:-
进入到 Operators
Installed Operators NVIDIA GPU Operator。 -
点 ClusterPolicy 选项卡,检查状态是否显示
ready
。
-
进入到 Operators
-
选择
nvidia-gpu-operator
命名空间并进入到 WorkloadsPods 来验证 NVIDIA GPU Operator 命名空间中的所有 pod 是否正在运行。 使用支持 MIG 的 GPU 标签节点以启用 MIG 模式:
-
进入 Compute
Nodes。 - 选择具有 MIG 功能 GPU 的节点。
-
点 Actions
Edit Labels。 -
添加标签
nvidia.com/mig.config=all-enabled
。 - 点击 Save。
对具有 MIG 功能 GPU 的每个节点重复此操作。
重要应用 MIG 标签后,标记的节点将重新引导以启用 MIG 模式。等待节点恢复在线,然后继续。
-
进入 Compute
-
通过检查
nvidia.com/mig.config=all-enabled
标签出现在 Labels 部分中,验证 GPU 节点上的 MIG 模式是否已成功启用。要找到标签,进入到 ComputeNodes,选择 GPU 节点,然后点 Details 选项卡。
-
在 OpenShift Container Platform web 控制台中导航至 Operators
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
OperatorHub。 - 在过滤器框中搜索 Dynamic Accelerator Slicer 或 DAS,以查找 DAS Operator。
- 选择 Dynamic Accelerator Slicer,再点 Install。
在 Install Operator 页中:
- 为安装模式选择 All namespaces on the cluster (default)。
-
选择 Installed Namespace
Operator recommended Namespace: Project das-operator。 -
如果创建新命名空间,请输入
das-operator
作为命名空间名称。 - 选择一个更新频道。
- 为批准策略选择 Automatic 或 Manual。
- 点 Install。
-
在 OpenShift Container Platform web 控制台中,点击 Operators
Installed Operators。 - 从列表中选择 DAS Operator。
- 在 Provided APIs 表列中,点 DASOperator。这会进入 Operator 详情页的 DAS Operator 选项卡。
- 点 Create DASOperator。这会进入 Create DASOperator YAML 视图。
在 YAML 编辑器中,粘贴以下示例:
DASOperator
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
DASOperator
CR 的名称必须是cluster
。
- 点 Create。
验证
验证 DAS Operator 是否已成功安装:
-
导航到 Operators
Installed Operators 页面。 -
确保
das-operator
命名空间中列出了 Dynamic Accelerator Slicer,Status 为 Succeeded。
验证 DASOperator
CR 是否已成功安装:
-
创建
DASOperator
CR 后,Web 控制台会进入 DASOperator 列表视图。当所有组件都运行时,CR 的 Status 字段将变为 Available。 可选。您可以通过在 OpenShift CLI 中运行以下命令来验证
DASOperator
CR 是否已成功安装:oc get dasoperator -n das-operator
$ oc get dasoperator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS AGE cluster Available 3m
NAME STATUS AGE cluster Available 3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在安装过程中,Operator 可能会显示 Failed 状态。如果安装后安装成功并显示 Succeeded 信息,您可以忽略 Failed 信息。
您还可以通过检查 pod 来验证安装:
-
进入到 Workloads
Pods 页,再选择 das-operator
命名空间。 验证所有 DAS Operator 组件 pod 是否正在运行:
-
DAS-operator
pod (主 operator 控制器) -
dAS-operator-webhook
pod (webhook 服务器) -
dAS-scheduler
pod (scheduler 插件) -
DAS-daemonset
pod (仅在具有 MIG 兼容 GPU 的节点上)
-
das-daemonset
pod 只会出现在具有 MIG 兼容的 GPU 硬件的节点上。如果没有看到任何 daemonset pod,请验证集群是否有带有支持的 GPU 硬件的节点,并且 NVIDIA GPU Operator 是否已正确配置。
故障排除
如果没有安装 Operator,请使用以下步骤:
-
导航到 Operators
Installed Operators 页面,检查 Operator Subscriptions 和 Install Plans 选项卡中的 Status 项中是否有任何错误。 -
进入到 Workloads
Pods 页,在 das-operator
命名空间中检查 pod 的日志。
6.1.2. 使用 CLI 安装动态加速器 Slicer Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 OpenShift CLI 安装 Dynamic Accelerator Slicer (DAS) Operator。
先决条件
-
可以使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群。 -
已安装 OpenShift CLI(
oc
)。 已安装所需的先决条件:
- cert-manager Operator for Red Hat OpenShift
- Node Feature Discovery (NFD) Operator
- NVIDIA GPU Operator
- NodeFeatureDiscovery CR
流程
为 MIG 支持配置 NVIDIA GPU Operator:
应用以下集群策略来禁用默认的 NVIDIA 设备插件并启用 MIG 支持。使用以下内容创建名为
gpu-cluster-policy.yaml
的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用集群策略:
oc apply -f gpu-cluster-policy.yaml
$ oc apply -f gpu-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 NVIDIA GPU Operator 集群策略是否达到
Ready
状态:oc get clusterpolicies.nvidia.com gpu-cluster-policy -w
$ oc get clusterpolicies.nvidia.com gpu-cluster-policy -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待
STATUS
列显示ready
。输出示例
NAME STATUS AGE gpu-cluster-policy ready 2025-08-14T08:56:45Z
NAME STATUS AGE gpu-cluster-policy ready 2025-08-14T08:56:45Z
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 NVIDIA GPU Operator 命名空间中的所有 pod 是否正在运行:
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有 pod 都应该会显示
Running
或Completed
状态。运行以下命令,使用 MIG 功能 GPU 标记节点以启用 MIG 模式:
oc label node $NODE_NAME nvidia.com/mig.config=all-enabled --overwrite
$ oc label node $NODE_NAME nvidia.com/mig.config=all-enabled --overwrite
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
$NODE_NAME
替换为具有 MIG 功能 GPU 的每个节点的名称。重要应用 MIG 标签后,标记的节点重新引导以启用 MIG 模式。等待节点恢复在线,然后继续。
运行以下命令验证节点是否已成功启用 MIG 模式:
oc get nodes -l nvidia.com/mig.config=all-enabled
$ oc get nodes -l nvidia.com/mig.config=all-enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为 DAS Operator 创建命名空间:
创建定义
das-operator
命名空间的以下Namespace
自定义资源(CR),并将 YAML 保存到das-namespace.yaml
文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令创建命名空间:
oc create -f das-namespace.yaml
$ oc create -f das-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
通过创建以下对象,在您上一步中创建的命名空间中安装 DAS Operator:
创建以下
OperatorGroup
CR,并在das-operatorgroup.yaml
文件中保存 YAML:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
OperatorGroup
CR:oc create -f das-operatorgroup.yaml
$ oc create -f das-operatorgroup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建以下
Subscription
CR,并将 YAML 保存到das-sub.yaml
文件中:订阅示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建订阅对象:
oc create -f das-sub.yaml
$ oc create -f das-sub.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
das-operator
项目:oc project das-operator
$ oc project das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建以下
DASOperator
CR,并在das-dasoperator.yaml
文件中保存 YAML:DASOperator
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
DASOperator
CR 的名称必须是cluster
。
运行以下命令来创建
dasoperator
CR:oc create -f das-dasoperator.yaml
oc create -f das-dasoperator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证 Operator 部署是否成功:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功部署会显示状态为
Running
的所有 Pod。部署包括:- das-operator
- 主 Operator 控制器 pod
- das-operator-webhook
- 用于变异 pod 请求的 Webhook 服务器 pod
- das-scheduler
- 用于 MIG 分片分配的调度程序插件 pod
- das-daemonset
仅在具有 MIG 兼容 GPU 的节点上运行的 DaemonSet pod
注意das-daemonset
pod 只会出现在具有 MIG 兼容的 GPU 硬件的节点上。如果没有看到任何 daemonset pod,请验证集群是否有带有支持的 GPU 硬件的节点,并且 NVIDIA GPU Operator 是否已正确配置。