一、安装Golang
默认$GOPATH目录为 /root/go/
wget -c https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz -P /opt/
cd /opt/
tar -C /usr/local -xzf go1.12.1.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile && source /etc/profile
echo "export GOPATH=/root/go" >> /etc/profile && source /etc/profile
二、指定分支,下载 Kubernetes 源代码
mkdir -p $GOPATH/src/k8s.io
cd $GOPATH/src/k8s.io
git clone https://github.com/kubernetes/kubernetes -b release-1.14
cd $GOPATH/src/k8s.io/kubernetes
三、编译源码
进入Kubernetes根目录下
cd kubernetes
KUBE_BUILD_PLATFORMS指定目标平台,WHAT指定编译的组件,通过GOFLAGS和GOGCFLAGS传入编译时参数,如此处编译kubectl 组件。
KUBE_BUILD_PLATFORMS=linux/amd64 make all WHAT=cmd/kubectl GOFLAGS=-v GOGCFLAGS="-N -l"
- 如果不指定WHAT,则编译全部。
- make all是在本地环境中进行编译的。
- make release和make quick-release在容器中完成编译、打包成docker镜像。
- 编译kubectl这部分代码,也可执行make clean && make WHAT=cmd/kubectl
四、检查编译成果
编译过程较长,请耐心等待,编译后的文件在kubernetes/_output里。
有疑问加站长微信联系(非本文作者)