k8s源码学习--代码结构
k8s版本:v1.13
k8s代码的结构
api: 输出接口文档用,基本是json源码
build:构建脚本
cmd:所有的二进制可执行文件入口代码,也就是各种命令的接口代码。
pkg:项目diamante主目录,cmd只是接口,这里是具体实现。cmd类似业务代码,pkg类似核心
plugin:插件
test:测试相关的工具
third_party:第三方工具
docs:文档
example:使用例子
Godeps:项目依赖的Go的第三方包,比如docker客户端sdk,rest等
hack:工具箱,各种编译,构建,校验的脚本都在这。
translations :不同国家的语言包,使用poedit查看及编辑
|
|
根据功能主要分成以下三类:
1、文档类
(api、docs、logo)
2、工具类
(build、cluster、Godeps、hack、staging、translations)
3、代码类
(cmd、pkg、plugin、test、third_party)
工具类主要用到的build目录下的文件,自己动手编译的时候会用到;核心代码集中在cmd和pkg中。 cmd内部包含各个组件的入口,具体核心的实现部分在pkg目录下,分别如图:
plugin目录之前的版本包括scheduler部分的代码,在1.10之后,已经将scheduler部分代码移到和其他组件一致的pkg目录,所以目前plugin主要包含的是认证
与鉴权
部分的代码。
参考的学习资料
https://github.com/farmer-hutao/k8s-source-code-analysis/blob/master/README.md