为了满足我们的需求,需要对kubelet进行开发,开发之后需要编译成可执行二进制。
首先安装golang环境,我们使用的是k8s-1.16.3版本,需安装golang1.12.1以上的版本,而高于golang1.13的版本不可用,所以选定的golang版本是1.12.7.
wget -c https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz -P /opt/
cd /opt/
tar -C /usr/local -xzf go1.12.7.linux-amd64.tar.gz
#在/etc/profile或者用户目录下的.profile文件中配置环境变量
export GOROOT=/usr/local/go
export GOPATH=/root/gowork
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin
go version
go version go1.12.7 linux/amd64
golang安装成功。
注:k8s1.16.x版本使用该golang版本
k8s1.17.x使用1.13.5
必须直接从linux上克隆,从windows拷贝软连接和权限会被删除。
mkdir -p $GOPATH/src/k8s.io
cd $GOPATH/src/k8s.io
git clone git clone https://github.com/kubernetes/kubernetes -b release-1.16
cd $GOPATH/src/k8s.io/kubernetes
make clean && make WHAT=cmd/kubelet
生成的kubelet二进制在_output/bin/文件夹下。
kubelet查看最新日志的方式:sudo journalctl -f -u kubelet