1、如何獲取rpm包,及製作kubernetes鏡像
1.1 官方yum源,有***能力的 請使用
1 2 3 4 5 6 7 8 9 10 | cat <<EOF > /etc/yum .repos.d /kubernetes .repo [kubernetes] name=Kubernetes baseurl=http: //yum .kubernetes.io /repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https: //packages .cloud.google.com /yum/doc/yum-key .gpg https: //packages .cloud.google.com /yum/doc/rpm-package-key .gpg EOF |
1.2 自行編譯生成相關rpm包
1 2 3 4 5 6 | 下載源碼包 git clone https: //github .com /kubernetes/release kubeadm cd kubeadm /rpm sh docker-build.sh |
結果在 rpm/output/x86_64/yum/
1 2 3 4 | kubectl-1.8.2-0.x86_64.rpm kubelet-1.8.2-0.x86_64.rpm kubeadm-1.8.2-0.x86_64.rpm kubernetes-cni-0.5.1-0.x86_64.rpm |
期間會生成一個docker image叫kubelet-rpm-builder,也需要***
我已上傳自己私有倉
注意:如果提前下載好kubelet-rpm-builder,需要修改rpm目錄下的docker-build.sh 和Dockerfile
Dockerfile修改如下:
1 2 3 4 5 | FROM foxchan /kubelet-rpm-builder USER root ADD entry.sh /root/ COPY ./ /root/rpmbuild/SPECS ENTRYPOINT [ "/root/entry.sh" ] |
docker-build.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/bin/sh set -e echo "Cleaning output directory..." sudo rm -rf output/* mkdir -p output docker run -ti -- rm - v $PWD /output/ : /root/rpmbuild/RPMS/ kubelet-rpm-builder $1 sudo chown -R $USER $PWD /output echo echo "----------------------------------------" echo echo "RPMs written to: " ls $PWD /output/ */ echo echo "Yum repodata written to: " ls $PWD /output/ * /repodata/ |
2、利用github,創建kubernetes鏡像
2.1 Dockerfile上傳到github
github上新建一個工程,https://github.com/foxchenlei/docker-library
然後在工程中新增: ./kube-apiserver-amd64/Dockerfile
,Dockerfile內容爲:
1 2 | FROM gcr.io /google_containers/kube-apiserver-amd64 :v1.8.2 MAINTAINER FoxChan |
2.2 Docker Hub上創建Automated build
到docker hub上,Create -> Create Automated Build
,新增一個Github類型的自動編譯,選擇docker-library項目;修改Repository的Name爲kube-apiserver-amd64
,簡單填下描述,這樣就創建了一個Automated Build。
進到Repository kube-apiserver-amd64
,Build Setting中填寫Dockerfile Location爲
,修改Docker Tag Name爲1.8.2,Save Change and Trigger;然後點Build Details,可以看到build的過程,狀態切爲Success就可以了。kube-apiserver-amd64
2.3 剩下的,就是重複上面的操作,把你需要的鏡像全部構建到hub.docker.com,以後需要的時候 就pull下來