编译k8s可执行文件

Compiling Kubernetes Binaries

编译kubernetes之前需要有完备的Go环境。这篇文章将通过几种方式来编译LInux二进制文件和交叉编译Windows二进制文件:

安装Go

但要保证Golang版本与Kubernetes版本保持对应,可参考如下:
[https://github.com/kubernetes/community/blob/master/contributors/devel/development.md]

Kubernetes  requires Go
1.0 - 1.2   1.4.2
1.3, 1.4    1.6
1.5, 1.6    1.7 - 1.7.5
1.7         1.8.1
1.8         1.8.3
1.9         1.9.1
1.10        1.9.1
1.11+       1.10.2

临时安装Go环境:

# cd ~
# wget https://redirector.gvt1.com/edgedl/go/go1.9.2.linux- amd64.tar.gz -O go1.9.2.tar.gz
# tar -vxzf go1.9.2.tar.gz
# mkdir gopath
# export GOROOT="$HOME/go"
# export GOPATH="$HOME/gopath"
# export PATH="$GOROOT/bin:$PATH"

注:若要设置永久生效,就需要在~/.profile中添加export后的内容。
为了验证,go安装是否成功,可通过以下命令检查:

# go version
...
# go env
...

编译kubernetes二进制

有几种不同的选择编译kubernetes二进制文件:

  • 本地编译
  • 用Vagrant产生二进制
  • 利用kuberbetes中标准容器构建脚本,按照如下操作步骤构建本地二进制文件:

本地构建

首先从仓库中获取kubernetes源码,命令如下:

# KUBEREPO="k8s.io/kubernetes"
# go get -d $KUBEREPO
# cd $GOPATH/src/$KUBEREPO

checkout分支然后构建Linux版本的kubelet二进制。这里我们使用v1.9.1版本,git checkout, 你可以应用PRs,patchs,或者修改后构建自己的二进制文件。

# git checkout tags/v1.9.1
# make clean && make WHAT=cmd/kubelet

最后,构建重要的Windows版本二进制文件,最后一步需要根据不同情况而定:

# KUBE_BUILD_PLATFORMS=windows/amd64 make WHAT=cmd/kubectl
# KUBE_BUILD_PLATFORMS=windows/amd64 make WHAT=cmd/kubelet
# KUBE_BUILD_PLATFORMS=windows/amd64 make WHAT=cmd/kube-proxy
# cp _output/local/bin/windows/amd64/kube*.exe ~/kube-win/

该步骤跟编译Linux版本的可执行文件事相同的。Linux中只需要去掉KUBE_BUILD_PLATFORMS=windows/amd64前缀,输出目录中将会变成_output/…/linux/amd64。

利用Vagrant构建

There is a Vagrant setup available here. Use it to prepare a Vagrant VM, then execute these commands inside it:

DIST_DIR="${HOME}/kube/"
SRC_DIR="${HOME}/src/k8s-main/"
mkdir ${DIST_DIR}
mkdir -p "${SRC_DIR}"

git clone https://github.com/kubernetes/kubernetes.git ${SRC_DIR}

cd ${SRC_DIR}
git checkout tags/v1.9.1
KUBE_BUILD_PLATFORMS=linux/amd64   build/run.sh make WHAT=cmd/kubelet
KUBE_BUILD_PLATFORMS=windows/amd64 build/run.sh make WHAT=cmd/kubelet 
KUBE_BUILD_PLATFORMS=windows/amd64 build/run.sh make WHAT=cmd/kube-proxy 
cp _output/dockerized/bin/windows/amd64/kube*.exe ${DIST_DIR}

ls ${DIST_DIR}

引用

[1](‘https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/kubernetes/compiling-kubernetes-binaries#build-locally‘)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值