k8s源碼分析準備工作 - 源碼準備
阿新 • • 發佈:2019-02-17
class mkdir -p sch thead ber 本地 linux 移動 -a
本文原始地址:https://farmer-hutao.github.io/k8s-source-code-analysis/
項目github地址:https://github.com/farmer-hutao/k8s-source-code-analysis
源碼準備
- 1、環境準備
- 2、源碼下載
- 3、源碼編譯
- 4、IDE
1. 1、環境準備
操作系統:我們使用Linux作為k8s源碼分析和調試環境,fedora、centos、ubuntu都行,我這裏使用fedora;
golang相關:
- GOROOT=/usr/local/lib/golang
- GOPATH=/root/go
- go version go1.10.3 linux/amd64
2. 2、源碼下載
mkdir -p /root/go/src/k8s.io
cd /root/go/src/k8s.io/
git clone https://github.com/kubernetes/kubernetes.git
下載後本地目錄:
3. 3、源碼編譯
我們先看一下幾個主要的目錄:
目錄名 | 用途 |
---|---|
cmd | 每個組件代碼入口(main函數) |
pkg | 各個組件的具體功能實現 |
staging | 已經分庫的項目 |
staging裏面存放了一些kubernetes相關的子項目,需要放到${GOPATH}/src/k8s.io/
,我們先把這些文件挪動一下:
考慮到國內網絡環境等因素,我們不使用容器化方式構建。完成如上目錄移動之後,kubernetes的依賴分別丟到了${GOPATH}/src/k8s.io/
和${GOPATH}/src/k8s.io/kubernetes/vendor/
,我們嘗試在kubernetes項目cmd目錄下構建一個組件(執行路徑:/root/go/src/k8s.io/kubernetes/cmd/kube-scheduler
):
4. 4、IDE
我們使用Goland看代碼:
最後,別忘了在正式研讀源碼前切換到release-1.13
分支~
k8s源碼分析準備工作 - 源碼準備