我是怎么阅读kubernetes源代码的?

  • 时间:
  • 浏览:2

本文转移开源中国-

进入你这一文件后,重点看的就说 数据价值形式和最好的法律法子:

这段代码比较短就全文贴出来了

答5.在翻了限流的代码后,发现来自于kubernetes\Godeps\_workspace\src\github.com\juju\ratelimit,实现的是有另一个令牌桶的算法,burst指的是在n个请求内保持qps平均值的度量。详见这篇文章

问9.generic_scheduler.go是为什么么么在和scehduler.go产生关系的?

以阅读k8s其中的有另一个模块,scheduler为例子,来讲讲我是为什么么么在读代码的

数据价值形式是那些?数据价值形式就说 舞台上的角色,而函数最好的法律法子就说 那些角色之间演出的一幕幕戏。对象是有生命的,从创建到数据流转,从产生到消亡。而作为开发者来说,首先是搞懂那些人物设定,是关公还是秦琼,是红脸还是黑脸?看懂了人,看多懂了戏。

答6.factoryProvider仅仅是有另一个算法注册的键值对表达地,大部分的实现还是装到去去generic_scheduler底下的



在调到你这一层的前一天,我发现个人走过头了,底下s.config.Algorithm.Schedule何必 会直接调用generic_scheduler.go。对于一门面向对象的语言来说,最后的执行否则 是一层接口套一层接口,而接口和实现的分离也造成了当你阅读到某个地方前一天就无法深入下去。否则 说,纯粹的自顶向下的阅读最好的法律法子何必 适合面向对象的代码。统统,目前我的阅读最好的法律法子结束了了英语 变成了碎片式阅读,先把整个代码目录树给看多,否则 去最有否则 解释我心中问提的地方去寻找答案,否则 一片片把真相拼合起来。



问1.scheduler读取到的数据价值形式是为什么么么在样的?(输入)

问2.scheduler写出的的数据价值形式是为什么么么在样的?(输出)

问3.在前面的测试中,scheduler成为了系统的瓶颈,为那些?

问4.社区他们说增加缓存能有效提高scheduler的数率,他的思路是可行的吗?

问8.Binder是为什么么么在去做绑定操作的?

scheduler是k8s的调度模块,做的事情就说 拿到pod前一天在node中寻找相当于的进行适配没法有另一个单纯的功能。实际上,我否则 多次编译和构建你这一系统进程并运行起来。在我的脑中,sheduler在整个系统中是有另一个的:

答8.Binder的操作实在很简单,就说 把pod和node的有另一个字段装到去去http请求中发送到apiserver去做绑定,这也和系统的整体架构是一致的

下一层入口:

这段代码底下,结合下面的最好的法律法子,让我要要得出没法哪多少印象:

答2:在这里我看多了输出的数据价值形式为:

从目录树中,能才能看出调度算法的目录在algrorithemalgrorithemprovider底下,而把对象组装到一齐的关键源代码是在:



对于这层的问提是:

问5.哪多少限流是为什么么么在实现的?QPS和Brust有那些区别?问6.算法提供者AlgorithmProvider是为什么么么在被抽象出来的?时需完成那些事情?

再下一层的入口在:

答9.scheduler.go是形式,generic_scheduler.go是内容,通过factory组装

能才能看多,对于细枝末节我一概忽略掉,进入下一层,否则 ,我并也有不提出问提,提出的问提会写在这里,否则 从脑子底下“忘掉”,以减轻前进的负担

你这一文件最重要的数据价值形式是:

这就涉及到调度的核心逻辑,就2行

有另一个就把我底下的问9解答了

问7.结合观看多modeler.go前一天,发现这是在绑定后防止的,所谓的assuemPod,就说 把绑定的pod装到去去有另一个队列底下去,也有很理解为那些你这一互斥操作是装到去去bind前一天做?

scheduler作为有另一个客户端,从apiserver中读取到时需分配的pod,和拥有的node,否则 进行过滤和算分,最后把你这一匹配信息通过apiserver写入到etcd底下,供下一步的kubelet去拉起pod使用。有另一个,立刻有哪多少问提浮现出来

也解答了问6

这里让我不完整性叙述细节了,读者能才能按照我的路子去个人寻找答案。

这是代码目录树:

factory的最大作用,就说 从命令行参数中获取到--algorithm--policy-config-file来获取到必要算法名称和调度策略,来构建Config,Config实在是调度系统进程的核心数据价值形式。schduler这整个系统进程做的事情能才能概括为:获取配置信息——构建Config——运行Config。你这一过程类事于java中的sping组装对象,只不过在这里是通过代码显式进行的。从装配工厂中,他们儿看多了关键的一行