在kube-batch V0.4及以上版本中鳞绕,kube-batch默認(rèn)的配置 只包含兩個(gè) Action(allocate, backfill)。
在自己的需求中间影,我們可能需要定義自己的配置。
思路:
查看util.go中的代碼發(fā)現(xiàn),Kube-batch在發(fā)現(xiàn)用戶指定配置文件后腋粥,會(huì)自動(dòng)地讀取該文件的內(nèi)容晦雨,而不是使用自定義的config。所以隘冲,一個(gè)想法就是闹瞧,使用NFS掛載卷,先生成自己的config file展辞。然后修改kube-batch的deployment奥邮,讓他讀取這個(gè)config file。
修改方式如下:
步驟:
(1)創(chuàng)建pv,pvc,然后將自己的conf文件放到本地掛載的地方
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: kubebatch-pvc
namespace: kube-system # 一定要加namespace,否則找不到
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: kubebatch-pv
namespace: kube-system
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
nfs:
server: 192.168.14.69
path: /nfs-data/kube-batch
自定義的配置文件 kube-batch-conf.yaml
actions: "reclaim, allocate, backfill, preempt"
tiers:
- plugins:
- name: priority
- name: gang
- name: conformance
- plugins:
- name: drf
- name: predicates
- name: proportion
- name: nodeorder
(2)修改kube-batch deployment罗珍,設(shè)置Volumes和 mountPath洽腺,同時(shí)args加上對(duì)應(yīng)的參數(shù)
使用kubectl edit deployment kube-batch -n kube-system
然后做以下的修改:
a. 修改args參數(shù)
containers:
- args:
- --logtostderr
- --v
- "3"
- --scheduler-conf
- /etc/zoux/kube-batch-conf.yaml (與下面對(duì)應(yīng))
b.設(shè)置Volumes和 mountPath
volumeMounts:
- mountPath: /etc/zoux (換成你自己的)
name: kube-batch
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: kube-batch
persistentVolumeClaim:
claimName: kubebatch-pvc (換成你自己的pvc)
(3)成功保存退出即可。(修改后kube-batch會(huì)自動(dòng)重啟)
最后感謝義洋同學(xué) 一起討論提供思路覆旱。