k8s源碼分析准備工作 - 源碼准備


本文原始地址:https://farmer-hutao.github.io/k8s-source-code-analysis/

項目github地址:https://github.com/farmer-hutao/k8s-source-code-analysis

源碼准備

1. 環境准備

操作系統:我們使用Linux作為k8s源碼分析和調試環境,fedora、centos、ubuntu都行,我這里使用fedora;

golang相關:

  • GOROOT=/usr/local/lib/golang
  • GOPATH=/root/go
  • go version go1.10.3 linux/amd64

2. 源碼下載

mkdir -p /root/go/src/k8s.io cd /root/go/src/k8s.io/ git clone https://github.com/kubernetes/kubernetes.git 

下載后本地目錄:

1550208476439

3. 源碼編譯

我們先看一下幾個主要的目錄:

目錄名 用途
cmd 每個組件代碼入口(main函數)
pkg 各個組件的具體功能實現
staging 已經分庫的項目
vendor 依賴

考慮到國內網絡環境等因素,我們不使用容器化方式構建。我們嘗試在kubernetes項目cmd目錄下構建一個組件(執行路徑:/root/go/src/k8s.io/kubernetes/cmd/kube-scheduler):

1550221168405

這里需要注意一下,如果報依賴錯誤,找不到k8s.io下的某些項目,就到vendor下看一下軟鏈接是不是都還在,如下:

1550477991608

注意到k8s是使用這種方式解決k8s.io下的依賴問題的,如果我們在windows下下載的代碼,然后copy到linux下,就很容易遇到這些軟鏈接丟失的情況,導致go找不到依賴,編譯失敗。

4. IDE

我們使用Goland看代碼:

1550328005342

最后,別忘了在正式研讀源碼前切換到release-1.13分支~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM