👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
本文主要介绍配置 mGPU 算力分配策略的方法,以及在工作负载中使用该策略进行调度的操作。
说明
mGPU 功能目前处于 公测 阶段。
使用须知
使用 mGPU 算力分配策略时,对集群、GPU 组件等有如下要求和限制。更多 mGPU 使用须知,请参见 mGPU 使用方法。
项目 | 要求 |
---|---|
Kubernetes 版本 | 不低于 v1.20.15-vke.6 版本。 说明 低于 v1.20.15-vke.6 版本的集群中已有 mGPU 相关业务,且希望使用 mGPU 算力分配策略时,请提交 工单申请 获取技术支持,升级 Kubernetes 版本。 |
mgpu 组件版本 | 不低于 v0.0.3 版本。组件版本升级方法,请参见 组件升级;组件版本发布记录,请参见 组件发布记录。 |
算力分配策略说明
mGPU 支持如下三种算力分配策略。
Value 取值 | 说明 |
---|---|
fixed-share(默认值) | 固定配额。每个容器都有固定的算力配额,在容器运行过程中即使 GPU 还有剩余算力,也无法超过固定算力配额。 |
guaranteed-burst-share | 固定争抢。每个容器都有保底的算力配额,但只要 GPU 还有空闲算力,就可以被容器使用。 |
native-burst-share | 争抢模式。可设置算力配额,设置的值越高,可争抢到的配额越高,但不保证每个容器都能争抢到与已设置的算力配额相同的配额。 |
前提条件
已完成 mGPU 相关配置。详细操作,请参见 mGPU 使用方法。
步骤一:为 GPU 计算型节点配置算力分配策略
登录 容器服务控制台。
在顶部导航栏中选择您业务所在的地域。
在左侧导航栏中选择 集群,单击目标集群名称。
为 mGPU 相关节点或节点池,配置算力分配策略。
更改节点的 mGPU 算力分配策略后,需要重启节点使策略生效。重启节点的操作,请参见 重启实例。
vke.volcengine.com/mgpu-compute-policy属于系统标签,节点上添加系统标签后不允许修改 Value 值。
不设置算力分配策略时(即不设置vke.volcengine.com/mgpu-compute-policy节点标签),则默认按fixed-share策略分配算力。
您可以通过开启或关闭节点池的 节点标签及污点自动更新 功能,控制是否同步标签到节点池中的存量节点中。关闭该功能时,可能导致存量节点上的 GPU 算力分配策略与预期不符,请谨慎配置。
更改节点池中节点的 mGPU 算力分配策略后,需要重启节点池中的所有 mGPU 相关节点使策略生效。重启节点的操作,请参见 重启实例。
不设置算力分配策略时(即不设置vke.volcengine.com/mgpu-compute-policy节点标签),则默认按fixed-share策略分配算力。
节点池
节点
在集群管理页面的左侧导航栏中,单击 节点。
在 节点 页面,找到已完成 mGPU 相关配置的节点,选择对应 操作 列下的... > 标签管理。
在 标签 页签,单击 添加标签,在节点标签列表的最后,添加 key 为vke.volcengine.com/mgpu-compute-policy、Value 为fixed-share、guaranteed-burst-share或native-burst-share的标签,表示在该节点上,配置 Value 取值对应的算力分配策略。
注意
在集群管理页面的左侧导航栏单击 节点池。
在 节点池 页面,找到已完成 mGPU 相关配置的节点池,单击对应 操作 列下的 编辑。
注意
您也可以在满足配置 mGPU 算力分配策略环境要求(Kubernetes 版本、mgpu 组件版本等)的集群中,创建新的 mGPU 相关 GPU 计算型节点池,同时配置算力分配策略。此时无需重启节点。详细操作,请参见 mGPU 使用方法。
在 更多配置 处设置 节点标签 的 key 为vke.volcengine.com/mgpu-compute-policy、Value 为fixed-share、guaranteed-burst-share或native-burst-share,表示在该节点池中的节点上,配置 Value 取值对应的算力分配策略。
详细的参数说明,请参见 管理节点池。注意
步骤二:在工作负载中配置算力分配策略
本文以创建无状态负载(Deployment)为例。
通过控制台配置
在集群管理页面的左侧导航栏中,选择 工作负载 > 无状态负载。
在 无状态负载 页面,创建无状态负载或更新已有的负载。详细操作,请参见 创建无状态负载、更新无状态负载。
其中 高级配置 步骤的 实例注解 处,配置 mGPU 调度策略:
设置 实例注解 的 key 为vke.volcengine.com/mgpu-compute-policy、Value 为fixed-share、guaranteed-burst-share或native-burst-share,表示该工作负载,使用 Value 取值对应的调度策略。注意
工作负载不设置 mGPU 调度策略相关的 实例注解 时,默认按fixed-share策略调度。
请确保集群中存在与工作负载具有相同策略的 GPU 计算型节点,例如工作负载的调度策略为fixed-share,那么集群中必须存在fixed-share策略的 GPU 计算型节点,否则不匹配调度策略,工作负载的 Pod 会一直处于 Pending 状态。
通过 YAML 配置
说明
在spec.template.metadata字段下添加 Annotations:vke.volcengine.com/mgpu-compute-policy,并根据需求配置对应的调度策略值。
YAML示例如下:
apiVersion: apps/v1 kind: Deployment metadata: name: mgpu-deployment # Deployment 名称。 namespace: default # Deployment 所属命名空间。 spec: replicas: 2 # Pod 实例个数。 selector: matchLabels: app: mgpu-deployment template: spec: containers: - name: mgpu-container # 容器名称。 image: nginx:1.14.2 # 容器镜像地址。 resources: requests: #与 limits 保持一致 vke.volcengine.com/mgpu-memory: 4096 vke.volcengine.com/mgpu-core: 30 limits: vke.volcengine.com/mgpu-memory: 4096 #GPU 显存,单位为 MiB,此处表示 GPU 显存为 4 GiB。 vke.volcengine.com/mgpu-core: 30 #GPU 算力百分比,此处表示配置 30% 的 GPU 算力。 ports: - containerPort: 80 metadata: annotations: vke.volcengine.com/mgpu-compute-policy: fixed-share #算力分配策略,不配置时默认采用 fixed-share 策略。 labels: app: mgpu-deployment yaml
后续操作
配置 mGPU 算力分配策略后,可查看 mGPU 的各项监控指标。详细操作,请参见 查看 mGPU 监控指标。