从安装Golang到Kubernetes源码编译,一步一步,跳过坑,抗过雷。内附编译过程出现的问题。
Kubernetes源码编译流程Kubernetes使用Go语言编写,所以编译源代码需要使用Go语言工具。go的源码安装非常简单,只需运行源码包中src/all.bash,等到出现 ALL TESTS PASSED 字样就安装好了,但是在源码安装1.5版本以上的go时会报 ERROR: Cannot find /root/go1.4/bin/go 这个错误,这是由于go 1....
Kubernetes源码编译流程
-
Kubernetes使用Go语言编写,所以编译源代码需要使用Go语言工具。
-
go的源码安装非常简单,只需运行源码包中src/all.bash,等到出现 ALL TESTS PASSED 字样就安装好了,但是在源码安装1.5版本以上的go时会报 ERROR: Cannot find /root/go1.4/bin/go 这个错误,这是由于go 1.5版以后的编译安装需要1.4版本go,所以如果想要通过源码方式安装高版本go,必须先安装好1.4版本的go。
-
首先需要安装Go的编译环境:
-
配置go1.4的环境变量GOROOT_BOOTSTRAP :安装路径,github上有问题github上指向到bin/go。
-
设置CGO_ENABLED=0 环境变量。
-
打开到go1.4的src目录下面使用./all.bash, 也可使用简单运行 ./make.bash,官网推荐使用后面的指令。
-
验证是否安装成功:/安装路径/bin/go version,如果提示版本就代表安装成功。
-
安装最新版本的go(go1.10.3),在src目录下使用./all.bash进行安装。
说明: 如果没有手动安装go1.4版本,就执行下面的命令,但是几乎安装不了,因为无法访问google。所以只能手动安装。 $ git clone https://go.googlesource.com/go $ cd go $ git checkout go1.10.3
-
配置环境变量:
export GOROOT=$HOME/go1.X//没有bin export GOARCH=amd64 export GOOS=linux export PATH=$PATH:$GOROOT/go1.x/bin
-
-
开始编译Kubernetes:
-
在go/go-go1.10.3/src/的src目录下面新建k8s.io/kubernetes/文件夹。如果出现以下问题
在环境变量中将之前设置的CGO_ENABLED=0 设置为1。
-
验证是否编译成功,去kubernetes/output/local/bin/linux/amd64目录下面使用命令:./kubelet version,如果有大量的说明显示则说明显示成功。如图:
-
-
最后将kubernetes的amd64目录下面所有编译之后的代码全部复制出来,最后进行安装。
-
版本限制:kubrenetes1.10版本需要使用go的版本至少在1.10.2(包括1.10.2)以上。
更多推荐
所有评论(0)