修改kubelet代码并重新编译

455人浏览 / 0人评论

一、下载代码

下载源码
确保GO环境已经设置完成,执行以下命令,创建目录用于存放Kubernetes源码:

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/data/go
export PATH=$PATH:$GOPATH
export GOPROXY=https://goproxy.io
export GO111MODULE="on"

mkdir -p $GOPATH/src/k8s.io


进入目录$GOPATH/src/k8s.io,执行以下命令即可开始下载:


git clone https://github.com/kubernetes/kubernetes -b release-1.13


提示:源码文件达到了八百多兆,下载时间会很长,推荐通过修改host的方法加速github下载,具体方法请自行搜索;
3. 下载完毕后,k8s.io目录下出现一个名为kubernetes的文件夹,里面内容如下:

[root@golang ~]# ls $GOPATH/src/k8s.io
kubernetes


[root@golang ~]# ls $GOPATH/src/k8s.io/kubernetes
api          CHANGELOG-1.12.md  cmd                 docs    LICENSE   Makefile.generated_files  pkg        SECURITY_CONTACTS  test          vendor
build        CHANGELOG.md       code-of-conduct.md  Godeps  logo      OWNERS                    plugin     staging            third_party   WORKSPACE
BUILD.bazel  cluster            CONTRIBUTING.md     hack    Makefile  OWNERS_ALIASES            README.md  S
 

4、开始编译

KUBE_BUILD_PLATFORMS=linux/amd64 make WHAT=cmd/kubelet 

5、找到命令

在目录$GOPATH/src/k8s.io/kubernetes/_output/bin,可以见到最新构建的kubectl文件 

 

其他-对所有进行编译

make clean

KUBE_BUILD_PLATFORMS=linux/amd64 make 

 

go官网下载地址

 https://go.dev/dl/

k8s github下载地址

 https://github.com/kubernetes/kubernetes/releases

 

 

方法二:使用go build 编译

1、进入目录

cd $GOPATH/src/k8s.io/kubernetes/cmd/kubelet

2、进行编译

go build -ldflags="-X k8s.io/kubernetes/pkg/version.gitVersion=v1.9.0"

 

注意事项

1、编译过程中 机器配置一定要大于4核8G,磁盘大于50G

2、编译的时候 go版本和k8s的版本一定要对应,https://github.com/kubernetes/kubernetes/blob/master/build/build-image/cross/VERSION

3、切换go版本后,已经要把原来老的go清理掉,删除掉,在安装新的gohttps://blog.csdn.net/lvsehaiyang1993/article/details/109046094

4、build后 执行kubelet --version无法显示版本号 https://segmentfault.com/a/1190000021163180

全部评论