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。
参考资料