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. 參考文獻
歡迎關注本站公眾號,獲取更多信息