diff --git a/README.md b/README.md index 85d02df..7656507 100644 --- a/README.md +++ b/README.md @@ -24,16 +24,18 @@ git checkout v1.14.3 # 切换到tag为v1.14.3的版本 源码拉取完成后,用自己的IDE打开,准备工作完毕. ## 核心组件 -- [Scheduler](https://note.youdao.com/) +- [Scheduler](https://github.com/yinwenqin/kubeSourceCodeNote) - Controller - 待补充 - ## Tips -md文档已同步至github: +md文档已同步至github,welcome star: +https://github.com/yinwenqin/kubeSourceCodeNote Kubernetes这一整个项目颇为庞大,一般情况下,如果熟悉kubernetes的应用,结合应用来理解源码的设计理念会容易许多,因此,对其应用不熟悉的朋友,不建议直接阅读源码。另外,目前处于边阅读代码边输出总结的阶段,如文中有误,请予以指正,非常感谢! +在此立一个flag,源码干货总结笔记,至少做到周不断更! diff --git a/scheduler/P1-调度器入口篇.md b/scheduler/P1-调度器入口篇.md index 7fcad88..7095735 100644 --- a/scheduler/P1-调度器入口篇.md +++ b/scheduler/P1-调度器入口篇.md @@ -1,4 +1,4 @@ -# 调度器启动 +# 调度器入口 ## 前言 本篇介绍scheduler的初始化相关逻辑 @@ -180,10 +180,9 @@ Broadcaster record.EventBroadcaster 进入`sched.Run()`: ![image](https://github.com/yinwenqin/kubeSourceCodeNote/blob/master/scheduler/image/p1/scheRun.jpg) -`wait.Until`这个调用的意思是,直到收到stop信号,在此之前循环运行`sched.scheduleOne`,终于找到启动函数最内部的主体啦: +`wait.Until`这个调用的逻辑是,直到收到stop信号才终止,在此之前循环运行`sched.scheduleOne`,终于找到启动函数最内部的主体啦: ![image](https://github.com/yinwenqin/kubeSourceCodeNote/blob/master/scheduler/image/p1/scheduleOne.jpg) `sched.scheduleOne`这个函数有代码点长,整体的功能可以概括为:获取需调度的pod、寻找匹配host、发起绑定host请求、绑定检查等一系列操作. #### 本篇入口篇到这里就先告一段落,下一篇开始阅读学习调度过程的逻辑! - diff --git a/scheduler/README.md b/scheduler/README.md index 9f7e2e9..0e00748 100644 --- a/scheduler/README.md +++ b/scheduler/README.md @@ -1,4 +1,10 @@ -# 调度器设计 +# 调度器总体设计 + +## 调度器源码分段阅读目录 +- [调度器入口](https://github.com/yinwenqin/kubeSourceCodeNote/blob/master/scheduler/P1-%E8%B0%83%E5%BA%A6%E5%99%A8%E5%85%A5%E5%8F%A3%E7%AF%87.md) +- 待补充 + +## 概览 首先列出官方md链接,讲解颇为生动: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-scheduling/scheduler.md 这里用结合自己阅读代码的理解做一下翻译。 @@ -73,6 +79,3 @@ Kubernetes scheduler独立运作与其他主要组件之外(例如API Server), ### 修改调度策略 默认调度策略是通过defaultPredicates() 和 defaultPriorities()这两个函数定义的,源码在 `pkg/scheduler/algorithmprovider/defaults/defaults.go`,我们可以通过命令行flag --policy-config-file CONFIG_FILE 来修改默认的调度策略。除此之外,也可以在`pkg/scheduler/algorithm/predicates/predicates.go` `pkg/scheduler/algorithm/priorities`源码中添加自定义的predicate和prioritie策略,然后注册到`defaultPredicates()`/`defaultPriorities()`中来实现自定义调度策略。 -## 调度器源码阅读目录 -- [初始化启动](https://note.youdao.com/) -- 待补充