《k8s-1.13版本原始碼分析》原始碼準備
本文原始地址: https://farmer-hutao.github.io/k8s-source-code-analysis/prepare/
專案github地址: https://github.com/farmer-hutao/k8s-source-code-analysis
原始碼準備
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
分支~