基本说明
https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/devel/development.md
实践如下:
1.fork 官方代码到自己的仓库
2.git clone到本地
3.切换到自己的分支
git checkout -b release-1.3.0 remotes/origin/release-1.3.0
4.代码编译构建的时候会去gcr.io拉取镜像和构建容器,如果报错镜像未能下载,是因为万恶的防火墙,需要手动拉取所需的镜像
Sending build context to Docker daemon 21.88 MB Step 1 : FROM gcr.io/google_containers/kube-cross:v1.6.3-2 Get https://gcr.io/v1/_ping: dial tcp 74.125.203.82:443: i/o timeout
(1).gcr.io/google_containers/kube-cross
这个镜像可以去dockerhub上拉取
注册daocloud的账号,使用他们的代理
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://xxx.m.daocloud.io
然后拉取
docker pull feisky/kube-cross:v1.6.2-2 docker pull feisky/kube-cross:v1.6.3-0
(2).debian-iptables-amd64:v3、pause-amd64、kube-registry-proxy
这三个可以去https://hub.alauda.cn的镜像仓库下载
docker pull index.alauda.cn/googlecontainer/debian-iptables-amd64:v3 docker pull index.alauda.cn/googlecontainer/pause-amd64 docker pull index.alauda.cn/googlecontainer/kube-registry-proxy:0.3
手动docker tag镜像为gcr.io/google_containers的镜像,如
docker tag 608ac17ba91b gcr.io/google_containers/kube-cross:v1.6.2-2 docker tag 49b5e076215b gcr.io/google_containers/debian-iptables-amd64:v3 docker tag 99e59f495ffa gcr.io/google_containers/pause-amd64:3.0
5.进入目录进行编译
cd kubernetes make release-skip-tests
除了linux/amd64,默认还会为其他平台做交叉编译。为了减少编译时间,可以修改hack/lib/golang.sh,把KUBE_SERVER_PLATFORMS, KUBE_CLIENT_PLATFORMS和KUBE_TEST_PLATFORMS中除linux/amd64以外的其他平台注释掉。
查看编译结果
/home/opama/workspace/k8s/src/k8s.io/kubernetes/_output/release-tars# ls -lrt 总用量 960968 -rw-r--r-- 1 root root 46278 9月 15 23:48 kubernetes-salt.tar.gz -rw-r--r-- 1 root root 39125 9月 15 23:48 kubernetes-manifests.tar.gz -rw-r--r-- 1 root root 41902241 9月 15 23:48 kubernetes-src.tar.gz -rw-r--r-- 1 root root 11920377 9月 15 23:48 kubernetes-client-linux-amd64.tar.gz -rw-r--r-- 1 root root 368181223 9月 15 23:49 kubernetes-server-linux-amd64.tar.gz -rw-r--r-- 1 root root 391622361 9月 15 23:49 kubernetes.tar.gz -rw-r--r-- 1 root root 170297505 9月 15 23:50 kubernetes-test.tar.gz
时间: 2024-10-06 05:34:24