安装Volcano
本章为集群调度组件提供的MindCluster Volcano组件(vc-scheduler和vc-controller-manager)的安装指导。如需使用开源MindCluster Volcano的其他组件,请用户自行安装,并保证其安全性。

本文档中MindCluster Volcano默认为集群调度组件提供的MindCluster Volcano组件。其他基于开源MindCluster Volcano的调度器可通过(可选)集成昇腾插件扩展开源Volcano章节,集成集群调度组件为开发者提供的Ascend-volcano-plugin插件,实现NPU调度相关功能。
操作步骤
- 以root用户登录K8s管理节点,并执行以下命令,查看MindCluster Volcano镜像和版本号是否正确。
- 将MindCluster Volcano软件包解压目录(以“/home/ascend-volcano”为例)下的yaml文件拷贝到K8s管理节点上任意目录(以“/home/ascend-volcano”为例)。如果MindCluster Volcano软件包在K8s管理节点上解压,可以不用进行拷贝操作。
cd /home/ascend-volcano scp root@{软件包解压节点IP地址}:/home/ascend-volcano/volcano-v{version}.yaml ./
- 如不修改组件启动参数,可跳过本步骤。否则,请根据实际情况修改对应启动yaml文件中MindCluster Volcano的启动参数。常用启动参数请参见表1和表2。
- 配置MindCluster Volcano日志转储。安装过程中,MindCluster Volcano日志将外挂到磁盘空间(“/var/log/mindx-dl”),为防止空间被占满,请为MindCluster Volcano配置日志转储,配置项信息参见表3。
- 在管理节点“/etc/logrotate.d”目录下,执行以下命令,创建日志转储配置文件。
vi /etc/logrotate.d/文件名
例如:
vi /etc/logrotate.d/volcano
写入以下内容,然后执行:wq命令保存。/var/log/mindx-dl/volcano-*/*.log{ daily rotate 8 size 50M compress dateext missingok notifempty copytruncate create 0640 hwMindX hwMindX sharedscripts postrotate chmod 640 /var/log/mindx-dl/volcano-*/*.log chmod 440 /var/log/mindx-dl/volcano-*/*.log-* endscript }
- 依次执行以下命令,设置配置文件权限为640,属主为root。
chmod 640 /etc/logrotate.d/文件名 chown root /etc/logrotate.d/文件名
例如:chmod 640 /etc/logrotate.d/volcano chown root /etc/logrotate.d/volcano
- 在管理节点“/etc/logrotate.d”目录下,执行以下命令,创建日志转储配置文件。
- 在管理节点的yaml所在路径,执行以下命令,启动MindCluster Volcano。
kubectl apply -f volcano-v{version}.yaml
启动示例如下,出现Running表示组件启动成功:
root@ubuntu:/home/ascend-volcano# kubectl apply -f volcano-v1.4.0.yaml namespace/volcano-system created namespace/volcano-monitoring created configmap/volcano-scheduler-configmap created serviceaccount/volcano-scheduler created clusterrole.rbac.authorization.K8s.io/volcano-scheduler created clusterrolebinding.rbac.authorization.K8s.io/volcano-scheduler-role created deployment.apps/volcano-scheduler created service/volcano-scheduler-service created serviceaccount/volcano-controllers created clusterrole.rbac.authorization.K8s.io/volcano-controllers created clusterrolebinding.rbac.authorization.K8s.io/volcano-controllers-role created deployment.apps/volcano-controllers created customresourcedefinition.apiextensions.K8s.io/jobs.batch.volcano.sh created customresourcedefinition.apiextensions.K8s.io/commands.bus.volcano.sh created customresourcedefinition.apiextensions.K8s.io/podgroups.scheduling.volcano.sh created customresourcedefinition.apiextensions.K8s.io/queues.scheduling.volcano.sh created customresourcedefinition.apiextensions.K8s.io/numatopologies.nodeinfo.volcano.sh created
- 执行以下命令,查看组件状态。
kubectl get pod -n volcano-system
回显示例如下:NAME READY STATUS RESTARTS AGE volcano-controllers-5cf8d788d5-qdpzq 1/1 Running 0 1m volcano-scheduler-6cffd555c9-45k7c 1/1 Running 0 1m
- 安装组件后,组件的Pod状态不为Running,可参考组件Pod状态不为Running章节信息。
- 安装组件后,组件的Pod状态为ContainerCreating,可参考集群调度组件Pod处于ContainerCreating状态章节信息。
- 启动组件失败,可参考启动集群调度组件失败,日志打印“get sem errno =13”章节信息。
- 组件启动成功,找不到组件对应的Pod,可参考组件启动yaml执行成功,找不到组件对应的Pod章节信息。
- 若MindCluster Volcano的Pod状态为CrashLoopBackOff,可以参见手动安装MindCluster Volcano后,Pod状态为:CrashLoopBackOff章节进行处理。
- 若volcano-scheduler-6cffd555c9-45k7c状态为Running,但是调度异常,可以参见MindCluster Volcano组件工作异常,日志出现Failed to get plugin章节进行处理。
参数说明
参数 |
类型 |
默认值 |
说明 |
---|---|---|---|
--log-dir |
string |
无 |
日志目录,组件启动yaml中默认值为/var/log/mindx-dl/volcano-scheduler。 |
--log-file |
string |
无 |
日志文件名称,组件启动yaml中默认值为/var/log/mindx-dl/volcano-scheduler/volcano-scheduler.log。 说明:
转储后文件的命名格式为:volcano-scheduler.log-触发转储的时间.gz,如:volcano-scheduler.log-20230926.gz。 |
--scheduler-conf |
string |
/volcano.scheduler/volcano-scheduler.conf |
调度组件配置文件的绝对路径。 |
--logtostderr |
bool |
false |
日志是否打印到标准输出。 |
-v |
int |
2 |
日志输出级别:
|
--plugins-dir |
string |
plugins |
scheduler插件加载路径。 |
--version |
bool |
false |
volcano scheduler二进制版本号。 |
参数 |
类型 |
默认值 |
说明 |
---|---|---|---|
--log-dir |
string |
无 |
日志目录,组件启动yaml中默认值为/var/log/mindx-dl/volcano-controller。 |
--log-file |
string |
无 |
日志文件名称,组件启动yaml中默认值为/var/log/mindx-dl/volcano-controller/volcano-controller.log。 说明:
转储后文件的命名格式为:volcano-controller.log-触发转储的时间.gz,如:volcano-controller.log-20230926.gz。 |
--logtostderr |
bool |
false |
日志是否打印到标准输出。 |
-v |
int |
4 |
日志输出级别:
|
--version |
bool |
false |
volcano controller二进制版本号。 |

MindCluster Volcano为开源软件,启动参数只罗列目前使用的常见参数,其他详细的参数请参见开源软件的说明。
配置项 |
说明 |
可选值 |
---|---|---|
daily |
日志转储频率。 |
|
rotate x |
日志文件删除之前转储的次数。 |
x为备份次数。 例如:
|
size xx |
日志文件到达指定的大小时才转储。 |
size单位可以指定:
例如size 50M指日志文件达到50 MB时转储。 说明:
logrotate会根据配置的转储频率,定期检查日志文件大小,检查时大小超过size的文件才会触发转储。 这意味着,logrotate并不会在日志文件达到大小限制时立刻将其转储。 |
compress |
是否通过gzip压缩转储以后的日志。 |
|
notifempty |
空文件是否转储。 |
|