我们有一个运行在 ubuntu 18.04 上的 kubernetes 集群(版本 1.18.x),我们主要使用这个集群来运行 AI 作业。
我们希望集群根据 bin 打包策略调度作业(nvidia gpu 资源具有最高的权重),我按照本文所述做到了这一点。但是在我做完所有的工作人员之后,吊舱就不能再安排了,它总是卡在 Pending 中!!
我们运行调度程序的命令如下:
/opt/kube/bin/kube-scheduler --address=127.0.0.1 --kubeconfig=/etc/kubernetes/kube-scheduler.kubeconfig --leader-elect=true --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 --tls-min-version=VersionTLS12 --v=2 --config=/path/to/my_policy_file.yaml
重启 kube-scheduler 的命令:
systemctl daemon-reload
systemctl stop kube-scheduler
systemctl start kube-scheduler
我的政策文件:
apiVersion: kubescheduler.config.k8s.io/v1beta1
kind: KubeSchedulerConfiguration
leaderElection:
leaderElect: true
clientConnection:
kubeconfig: /etc/kubernetes/kube-scheduler.kubeconfig
profiles:
- schedulerName: kube-scheduler
plugins:
score:
enabled:
- name: RequestedToCapacityRatio
weight: 100
pluginConfig:
- name: RequestedToCapacityRatio
args:
shape:
- utilization: 0
score: 0
- utilization: 100
score: 10
resources:
- name: cpu
weight: 1
- name: nvidia.com/gpu
weight: 100
但是在我将此文件应用到默认调度程序后,它不能再调度 pod。Pod 总是卡在待处理状态。这是我用来测试的 yaml 文件:
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- command: ["/bin/bash", "-c", "sleep", "3600"]
image: ubuntu:18.04
name: test
那么如何正确开启binpack功能呢?为什么不能安排工作?