docker images | grep volcanosh
vi /etc/logrotate.d/文件名
例如:
vi /etc/logrotate.d/volcano
/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 }
chmod 640 /etc/logrotate.d/文件名 chown root /etc/logrotate.d/文件名
chmod 640 /etc/logrotate.d/volcano chown root /etc/logrotate.d/volcano
配置项 |
说明 |
可选值 |
---|---|---|
daily |
日志转储频率。 |
|
rotate x |
日志文件删除之前转储的次数。 |
x为备份次数。 例如:
|
size xx |
日志文件到达指定的大小时才转储。 |
size单位可以指定:
例如size 50M指日志文件达到50 MB时转储。 说明:
logrotate会根据配置的转储频率,定期检查日志文件大小,检查时大小超过size的文件才会触发转储。 这意味着,logrotate并不会在日志文件达到大小限制时立刻将其转储。 |
compress |
是否通过gzip压缩转储以后的日志。 |
|
notifempty |
空文件是否转储。 |
|
... kind: Deployment ... labels: app: volcano-scheduler spec: replicas: 1 ... spec: ... imagePullPolicy: "IfNotPresent" resources: requests: memory: 4Gi cpu: 5500m limits: memory: 8Gi cpu: 5500m ... kind: Deployment ... labels: app: volcano-controller spec: ... spec: ... resources: requests: memory: 3Gi cpu: 2000m limits: memory: 3Gi cpu: 2000m ...
... data: volcano-scheduler.conf: | actions: "enqueue, allocate, backfill" tiers: - plugins: - name: priority enableNodeOrder: false - name: gang enableNodeOrder: false - name: conformance enableNodeOrder: false - name: volcano-npu_v6.0.RC2_linux-aarch64 # 其中v6.0.RC2为MindX DL的版本号,根据不同版本,该处编码不同 - plugins: - name: drf enableNodeOrder: false - name: predicates enableNodeOrder: false arguments: predicate.GPUSharingEnable: false predicate.GPUNumberEnable: false - name: proportion enableNodeOrder: false - name: nodeorder - name: binpack enableNodeOrder: false ....
... data: volcano-scheduler.conf: | ... configurations: - name: init-params arguments: {"grace-over-time":"900","presetVirtualDevice":"true","nslb-version":"1.0","shared-tor-num":"2","useClusterInfoManager} ...
参数名称 |
默认值 |
参数说明 |
---|---|---|
grace-over-time |
900 |
重调度优雅删除模式下删除Pod所需最大时间,单位为秒,取值范围2~3600。配置该字段表示使用重调度的优雅删除模式。优雅删除是指在重调度过程中,会等待Volcano执行相关善后工作,900秒后若Pod还未删除成功,再直接强制删除Pod,不做善后。 |
presetVirtualDevice |
true |
采用的虚拟化方式。
|
nslb-version |
1.0 |
交换机亲和性调度的版本,可以取值为1.0和2.0。 说明:
|
shared-tor-num |
2 |
交换机亲和性调度2.0中单个任务可使用的最大共享交换机数量,可取值为1或2。仅在nslb-version取值为2.0时生效。 交换机亲和性调度(1.0或2.0)说明可以参见基于节点的亲和性调度章节。 |
useClusterInfoManager |
true |
MindCluster Volcano获取集群信息的方式。取值说明如下:
说明:
默认使用读取MindCluster ClusterD组件上报的ConfigMap。后续版本将不支持读取MindCluster Ascend Device Plugin和MindCluster NodeD上报的ConfigMap。 |
data: volcano-scheduler.conf: | ... - name: proportion enableNodeOrder: false - name: nodeorder enableNodeOrder: false # 可选,不使用nodeAffinity和podAntiAffinity调度时,可关闭nodeorder插件 ... containers: - name: volcano-scheduler image: volcanosh/vc-scheduler:v1.7.0 command: ["/bin/ash"] args: ["-c", "umask 027; GOMEMLIMIT=15000000000 GOGC=off /vc-scheduler # 新增GOMEMLIMIT=15000000000和GOGC=off字段 --scheduler-conf=/volcano.scheduler/volcano-scheduler.conf --plugins-dir=plugins --logtostderr=false --log_dir=/var/log/mindx-dl/volcano-scheduler --log_file=/var/log/mindx-dl/volcano-scheduler/volcano-scheduler.log -v=2 2>&1"] imagePullPolicy: "IfNotPresent" resources: requests: memory: 10000Mi # 将4Gi修改为10000Mi cpu: 5500m limits: memory: 15000Mi # 将8Gi修改为15000Mi cpu: 5500m ...
kubectl apply -f volcano-v{version}.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
参数 |
类型 |
默认值 |
说明 |
---|---|---|---|
--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为开源软件,启动参数只罗列目前使用的常见参数,其他详细的参数请参见开源软件的说明。