1. 環境
系統:CentOS 7.2
Go:1.10.3
Kubernetes:1.10.4
2. 安裝最新版go
編譯的Kubernetes 1.10.4要求go版本在1.9.3以上,使用下面的yum源安裝最新版go:
[golang]
name=Golang
baseurl=https://mirror.go-repo.io/centos/7/x86_64/
enable=1
gpgcheck=0
# yum install golang
3. 下載下傳Kubernetes源碼到$GOPATH目錄
# go get -d k8s.io/kubernetes
如果通路k8s.io有問題,可以從github下載下傳,然後複制到$GOPATH/src/k8s.io/目錄。
4. 編譯
進入kubernetes目錄,切換到要編譯的版本,然後編譯:
# cd $GOPATH/src/k8s.io/kubernetes
# git checkout tags/v1.10.4
# make clean
# make WHAT=cmd/kubelet
WHAT指定隻編譯kubelet,減少編譯時間。編譯完成後會在_output/bin/目錄下生成kubelet二進制檔案。
5. 更新
将編譯生成的二進制檔案複制到安裝目錄,重新開機服務就完成更新了:
# cp $GOPATH/src/k8s.io/kubernetes/_output/bin/kubelet /usr/local/bin/kubelet
# systemctl restart kubelet
如果kubelet是運作在容器中,則需要打包成鏡像,參考
Building Kubernetes。
參考資料
編譯 Kubernetes 二進制檔案