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. 參考文獻

相關文章
相關標籤/搜索