一.前言
首先,要解决的就是安装来源问题,由于长城防火墙的原因,我们要想办法自己找来源。
Kubernetes 编译的各种发行版安装包来源于 Github 上的另一个叫 release 的项目,地址 点这里,把这个项目 clone 下来,由于本人是 Centos 用户,所以进入 rpm 目录,在安装好 docker 的机器上执行那个 docker-build.sh 脚本即可编译 rpm 包,最后会生成到当前目录的 output 目录下,截图如下
1.git clone https://github.com/kubernetes/release
2.cd rpm && ./docker-build.sh
3.会在rpm目录下生成一个output
目录,cd output/x86_64下
[[email protected] x86_64]# ll
root root 6121522 Nov 17 07:20 kubeadm-1.6.0-0.alpha.0.2074.a092d8e0f95f52.x86_64.rpm
-rw-r--r-- 1 root root 6918310 Nov 17 07:20 kubectl-1.5.1-0.x86_64.rpm
-rw-r--r-- 1 root root 12722002 Nov 17 07:20 kubelet-1.5.1-0.x86_64.rpm
-rw-r--r-- 1 root root 10283710 Nov 17 07:20 kubernetes-cni-0.3.0.1-0.07a8a2.x86_64.rpm
drwxr-xr-x 2 root root 4096 Nov 17 07:20 repodata
4. yum install -y ebtables socat
rpm -ivh *.rpm
镜像如何而来:
利用 docker hub 做中转,简单的说就是利用 docker hub 的自动构建功能,在 Github 中创建一个 Dockerfile,里面只需要 FROM xxxx
这些 gcr.io 的镜像即可,最后 pull 到本地,然后再 tag 一下
######################################################################################
1.在github上注册个账号,登陆,建立一个docker-library的repository
2.上传本地服务器的公钥给github
ssh-keygen 生成公钥,然后less /root/.ssh/id_rsa.pub 把内容复制,在github的用户setting中找到SSH的设置,把刚才的内容放进去。
3.克隆repository到本地服务器
git clone [email protected]:mxl0721/docker-library
完成后在当前目录会生成和repository一样名字的目录docker-library
[[email protected] ~]# ll
total 8
-rw-------. 1 root root 958 Nov 14 04:11 anaconda-ks.cfg
drwxr-xr-x 5 root root 83 Nov 14 09:36 docker-library
4.在repository中建立你想增加的项目(目录)和文件
mkdir etcd-amd64
cd etcd-amd64
vi Dockerfile
FROM gcr.io/google_containers/etcd-amd64:3.0.14-kubeadm
MAINTAINER mxl0721 <[email protected]>
#################################################################
[[email protected] docker-library]# git add etcd-amd64/Dockerfile
[[email protected] docker-library]# git commit -m "add dirctory"
[[email protected] docker-library]# git push
最后建完后的效果是:
最后在 Docker Hub 上创建自动构建项目