1. 環境git
系統:CentOS 7.2github
Go:1.10.3golang
Kubernetes:1.10.4windows
2. 安裝最新版gocentos
編譯的Kubernetes 1.10.4要求go版本在1.9.3以上,使用下面的yum源安裝最新版go:ui
[golang] name=Golang baseurl=https://mirror.go-repo.io/centos/7/x86_64/ enable=1 gpgcheck=0
# yum install golang
3. 下載Kubernetes源碼到$GOPATH目錄url
# go get -d k8s.io/kubernetes
若是訪問k8s.io有問題,能夠從github下載,而後複製到$GOPATH/src/k8s.io/目錄。spa
4. 編譯rest
進入kubernetes目錄,切換到要編譯的版本,而後編譯:code
# 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。
參考資料