温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Kubernetes如何源码编译

发布时间:2021-12-08 11:38:20 来源:亿速云 阅读:140 作者:小新 栏目:云计算

这篇文章给大家分享的是有关Kubernetes如何源码编译的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

准备

安装golang、docker 另,设置以下内容对golang包编译会是个好习惯

export GO111MODULE="on"
export GOPROXY=https://goproxy.cn

下载源码

mkdir -p $GOPATH/src/k8s.io
cd $GOPATH/src/k8s.io
git clone https://github.com/kubernetes/kubernetes  
cd $GOPATH/src/k8s.io/kubernetes

编译

编译方式1

命令

KUBE_BUILD_PLATFORMS指定目标平台,WHAT指定编译的组件,通过GOFLAGS和GOGCFLAGS传入编译时参数

  • 如此处编译kubelet 组件。

cd kubernetes
KUBE_BUILD_PLATFORMS=linux/amd64 make all WHAT=cmd/kubelet GOFLAGS=-v GOGCFLAGS="-N -l"

如果不指定WHAT,则编译全部。

  • make all是在本地环境中进行编译的。

  • make release 和 make quick-release 在容器中完成编译、打包成docker镜像。

编译kubelet这部分代码,也可执行 make clean && make WHAT=cmd/kubelet

检查编译成果

编译过程较长,编译后的文件在kubernetes/_output里。

编译方式2

命令

进入cmd/kubelet (以kubelet为例子) 执行

go build -v
  • 注1: 执行报错了, bitbucket.org/bertimus9/systemstat 包获取失败 多次尝试 go get 后安装成功,继续以上尝试

检查编译成果

如果没出错,会生成可执行文件 kubelet 和 对应的 tar 镜像文件(如果执行的是 make release)

#ls cmd/kubelet/
app BUILD kubelet kubelet.go OWNERS

感谢各位的阅读!关于“Kubernetes如何源码编译”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI