2. 源码目录说明
2.1 源码基本信息
2.1.1 github地址
k8s生态相关组件源码地址为:
- k8s: github.com/kubernetes/…
- metrics server: github.com/kubernetes-…
- cluster autoscaler: github.com/kubernetes/…
- istio: github.com/istio/istio
- cronhpa: github.com/AliyunConta…
2.2 源码目录说明
2.2.1 Kubernetes
主要目录及其说明如下:
| 目录名称 | 说明 |
|---|---|
| api | 存放 OpenAPI/Swagger 的 spec 文件,包括 JSON、Protocol 的定义等。 |
| build | 存放构建相关的脚本,包括 Kubernetes 内部组件编译的脚本以及制作 Docker 镜像的 Dockerfile 等。 |
| cmd | 存放可执行文件的入口代码,每一个可执行文件都会对应有一个 main 函数,包含各个 K8s 组件的入口,如 kube-apiserver、kube-controller-manager 等。 |
| hack | 存放与构建、测试相关的脚本,包括编译、构建及校验的工具类。 |
| pkg | 存放核心库代码,可被项目内部或外部直接引用,定义了许多基本的数据结构、函数和工具,是 Kubernetes 的主要代码存放类。 |
| plugin | 存放 kubernetes 的插件,例如认证插件、授权插件等。 |
| staging | 存放部分核心库的暂存代码,也就是还没有集成到 pkg 目录的代码,这里的代码都存放在独立的 repo 中,以引用包的方式添加到项目中。 |
| test | 存放测试工具,以及测试数据。 |
| third_party | 存放第三方工具、代码或其他组件,如 protobuf、golang-reflect 等。 |
| vendor | 存放项目依赖的库代码,一般为第三方库代码。 |