diff --git a/.DS_Store b/.DS_Store index c7c3204..457edab 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/README.md b/README.md index 1f939d1..ae1e909 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,6 @@ git checkout v1.14.3 # 切换到tag为v1.14.3的版本 ## Tips -md文档已同步至github,welcome star: -https://github.com/yinwenqin/kubeSourceCodeNote - Kubernetes这一整个项目颇为庞大,一般情况下,如果熟悉kubernetes的应用,结合应用来理解源码的设计理念会容易许多,因此,对其应用不熟悉的朋友,不建议直接阅读源码。另外,目前处于边阅读代码边输出总结的阶段,如文中有误,请予以指正,非常感谢! 在此立一个flag,源码干货总结笔记,至少做到周不断更! diff --git a/scheduler/.DS_Store b/scheduler/.DS_Store index 2c53432..5853d3f 100644 Binary files a/scheduler/.DS_Store and b/scheduler/.DS_Store differ diff --git a/scheduler/P3-Node筛选算法.md b/scheduler/P3-Node筛选算法.md index f50e6f0..28038ac 100644 --- a/scheduler/P3-Node筛选算法.md +++ b/scheduler/P3-Node筛选算法.md @@ -10,7 +10,7 @@ ## 正文 -Schedule()的核心是`findNodesThatFit()`方法 ,直接跳转过去: +Schedule()的筛选算法核心是`findNodesThatFit()`方法 ,直接跳转过去: `pkg/scheduler/core/generic_scheduler.go:184` --> `pkg/scheduler/core/generic_scheduler.go:435` diff --git a/scheduler/P4-Node优先级算法.md b/scheduler/P4-Node优先级算法.md new file mode 100644 index 0000000..7b81e26 --- /dev/null +++ b/scheduler/P4-Node优先级算法.md @@ -0,0 +1,59 @@ +# P4-Node优先级算法 + +## 前言 + +在上一篇文档中,我们过了一遍node筛选算法: + +[p3-Node筛选算法](https://github.com/yinwenqin/kubeSourceCodeNote/blob/master/scheduler/P3-Node%E7%AD%9B%E9%80%89%E7%AE%97%E6%B3%95.md) + +按调度规则设计,对筛选出的node,选择优先级最高的作为最终的fit node。那么本篇承接上一篇,进入下一步,node优先级算法。 + + + +## 正文 + +同上一篇,回到`pkg/scheduler/core/generic_scheduler.go`中的`Schedule()`函数,`pkg/scheduler/core/generic_scheduler.go:184`: + +![](https://github.com/yinwenqin/kubeSourceCodeNote/blob/master/scheduler/image/p4/schedule.jpg) + +截图中有几处标注,metric相关的几行,是收集metric信息,用以提供给prometheus使用的,kubernetes的几个核心组件都有这个功能,以后如果读prometheus的源码,这个单独拎出来再讲。 + + + +**PodAffinity**示例: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: pod-a + namespace: default +spec: + affinity: + podAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + weight: 100 + labelSelector: + matchExpressions: + - key: like + operator: In + values: + - pod-a + topologyKey: kubernetes.io/hostname + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: unlike + operator: In + values: + - pod-a + topologyKey: kubernetes.io/hostname + containers: + - name: test + image: gcr.io/google_containers/pause:2.0 +``` + diff --git a/scheduler/image/.DS_Store b/scheduler/image/.DS_Store index fdc8b15..7f1f946 100644 Binary files a/scheduler/image/.DS_Store and b/scheduler/image/.DS_Store differ diff --git a/scheduler/image/p2/generricSchedule.jpg b/scheduler/image/p2/genericSchedule.jpg similarity index 100% rename from scheduler/image/p2/generricSchedule.jpg rename to scheduler/image/p2/genericSchedule.jpg diff --git a/scheduler/image/p4/schedule.jpg b/scheduler/image/p4/schedule.jpg new file mode 100644 index 0000000..45daf05 Binary files /dev/null and b/scheduler/image/p4/schedule.jpg differ