编译k8s1.11 kube-apiserver源码

说明

修改k8s1.11 kube-apiserver源码并构建成镜像,最终替换运行在集群中的kube-apiserver pod来验证本次源码修改

参看链接:https://xinchen.blog.csdn.net/article/details/88603293

centos7.4

cpu 2core mem 4g

安装go环境

yum install -y go

 [root@node2 appdata]# go version
 go version go1.11.5 linux/amd64

下载k8s1.11源码

#创建源码存放目录,go在编译时会在$GOPATH/src下寻找源码
#默认GOPATH为/root/go,可通过go env查看
mkdir -p /root/go/src/k8s.io

#下载源码,阿里云ECS,速度挺快,其他机器可通过修改hosts加速
git clone https://github.com/kubernetes/kubernetes -b release-1.11

#下载编码源码需要的镜像
docker pull bolingcavalry/kube-cross:v1.11.5-1 \
&& docker pull bolingcavalry/debian-iptables-amd64:v11.0 \
&& docker pull bolingcavalry/debian-base-amd64:0.4.0

#tag镜像
docker tag b16987a9b305 k8s.gcr.io/kube-cross:v1.11.5-1 \
&& docker tag 48319fdf4d25 k8s.gcr.io/debian-iptables-amd64:v11.0 \
&& docker tag 8021d54711e6 k8s.gcr.io/debian-base-amd64:0.4.0

#编辑build/lib/release.sh文件,去除--pull参数以在编译时优先使用本地镜像

修改源码

#修改delete.go
vim /root/go/src/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/delete.go

 

构建源码

#全量编译
KUBE_BUILD_PLATFORMS=linux/amd64 make
#编译kube-apiserver为docker镜像
 KUBE_BUILD_PLATFORMS=linux/amd64 make quick-release WHAT=cmd/kube-apiserver #构建产物在如下目录 _output/release-images/amd64
 

猜你喜欢

转载自www.cnblogs.com/orchidzjl/p/10928356.html