1. 程式人生 > >k8s源碼分析準備工作 - 源碼準備

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

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源碼分析準備工作 - 源碼準備