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