1. 深入理解Pod调度

在前面的章节我们已经知道在Kubernetes中使用kube-scheduler进行Pod调度,它的目标是将Pod绑定到对应的Node上,经过一系列的条件和算法尽可能的让每个Pod都满意。kube-scheduler是Kubernetes默认的调度器。

kube-scheduler的代码位于GitHub

可以将代码克隆到本地方便查看

[root@linux-node1 ~]# git clone --depth 1 https://github.com/kubernetes/kubernetes.git

在algorithm下有调度算法,调度算法分为两个阶段:Predicates和priorities,首先对Node进行过滤看哪些Node符合调度要求,然后在符合调度要求的Node上进行优先级计算,判断调度到哪个Node最合适。

[root@linux-node1 algorithm]# pwd
/root/kubernetes/pkg/scheduler/algorithm
[root@linux-node1 algorithm]# ls -l
total 20
-rw-r--r-- 1 root root 1256 Dec 17 22:52 BUILD
-rw-r--r-- 1 root root  735 Dec 17 22:52 doc.go
drwxr-xr-x 2 root root  276 Dec 17 22:52 predicates
drwxr-xr-x 3 root root 4096 Dec 17 22:52 priorities
-rw-r--r-- 1 root root 3278 Dec 17 22:52 scheduler_interface.go
-rw-r--r-- 1 root root 3383 Dec 17 22:52 types.go

官方文档详细的介绍了所有的步骤:https://kubernetes.io/docs/concepts/scheduling/kube-scheduler/

设置调度器

[root@linux-node1 ~]# kubectl get pod kube-proxy-5wbtf -n kube-system -o yaml | grep schedulerName
  schedulerName: default-scheduler
Copyright © 赵班长@新运维社区 2019 all right reserved,powered by Gitbook该文件修订时间: 2024-06-18 22:25:30

results matching ""

    No results matching ""