Kubernetes 学习(八)Kubernetes 源码阅读之初级篇------源码及依赖下载
0. 前言
1. 方法论
- 第一步:熟悉 k8s 的基本功能,理解各个组件的分工,作到心中有数,可是不拘泥于掌握每个功能细节,由于不少特性在平常开发中很难用到
- 第二步:选定第一个要深刻研究的组件,概览其支持的全部子命令和 flag,知道该组件能实现哪些功能(知道基于什么实现,和哪些组件打交道),好比看 kube-proxy 至少先知道是用 iptables实现的,得先补补 iptables的知识
- 第三步:选定源码版本,不要追求 master 分支,可是建议选一个相对新的,或者公司正在使用的版本
- 第四步:准备编译、测试环境。至少可以把看的组件编译出来,可以运行起来后 debug 的环境,这样才能在 debug 中看各类在读源码时不理解的对象在运行中到底存了哪些数据
- 第五步:最快的速度抓住代码主线,泛读源码
- 第六步:针对特定功能精读、调试、深刻理解
- 第七步:总体精读,适当深刻三方库,公共库,绘制整理单个组件架构图、流程图等,帮助本身理解整个组件工做全流程,在平时使用中遇到 bug 后可以快速反应过来是哪一个模块的问题
- 最后:读完全部组件后融会贯通,理解各类公共库的抽取逻辑,汇总学习
2. 准备
- 建立目录:mkdir $GOPAH/src/k8s.io(Kubernetes 里 import 的 package 都是 k8s.io 做为前缀的)
- 切换至建立的目录下载代码:git clone https://github.com/kubernetes/kubernetes.git
- 切换至 1.13:git checkout -b 1.13 origin/release-1.13
- Kubernetes 依赖都在 vendor 和 staging 目录下,将 staging 目录下的全部子目录复制到 $GOPAH/src/k8s.io 中,便可在 Goland 中正常阅读
3. 参考文献
欢迎关注本站公众号,获取更多信息