Kubernetetes镜像在国内没法直接访问,致使安装费时、容易出错、难以排查。能够将其抓取到阿里云上面,提早拉取(docker pull)到本地,而后再运行kubeadm安装程序,就要快不少了。git
echo "" echo "==========================================================" echo "Pull Kubernetes 1.11.0 Images from aliyuncs.com ......" echo "==========================================================" echo "" MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings ## 拉取镜像 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0 docker pull ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 docker pull ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 docker pull ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 ## 添加Tag docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0 k8s.gcr.io/kube-apiserver-amd64:v1.11.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0 k8s.gcr.io/kube-scheduler-amd64:v1.11.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0 k8s.gcr.io/kube-controller-manager-amd64:v1.11.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0 k8s.gcr.io/kube-proxy-amd64:v1.11.0 docker tag ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18 docker tag ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1 docker tag ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 k8s.gcr.io/coredns:1.1.3 echo "" echo "==========================================================" echo "Pull Kubernetes 1.11.0 Images FINISHED." echo "into registry.cn-hangzhou.aliyuncs.com/openthings, " echo " by openthings@https://my.oschina.net/u/2306127." echo "==========================================================" echo ""
保存为aliyun-get-kubeimages-1.11.0.sh,复制上面内容进去,而后运行便可。github
安装Kubernetes1.11.0(下面以Ubuntu16.04.03LTS为准),以下:docker
第一步,安装Kubeadm:api
echo "添加Kubernetes安装源认证key:" sudo curl -sSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add echo "添加Kubernetes安装源:" sudo echo deb http://apt.kubernetes.io/ kubernetes-xenial main > /etc/apt/sources.list.d/kubernetes.list echo "更新系统软件包列表:" sudo apt update echo "查看Kubernetes的可用版本:" apt-cache madison kubeadm echo "安装kubeadm 1.11.0: " apt-get install -y kubeadm=1.11.0-00 kubectl=1.11.0-00 kubelet=1.11.0-00
第二步,经过kubeadm安装Kubernetes1.11.0:bash
echo "" echo "==========================================================" echo "Setup Kubernetes Cluster 1.11.0 using kubeadm......" echo "" echo "Please visit https://my.oschina.net/u/2306127/blog/1628082" echo "==========================================================" echo "" echo "Close Swap, K8S required." sudo swapoff -a echo "请sudo nano /etc/fstab中永久删除或关闭swap分区,使用 # 注释掉便可。" echo "" echo "Close IPTable,K8S required." sudo iptables -F echo "" echo "" echo "Setup Kubernetes Cluster using kubeadm..." sudo kubeadm init --kubernetes-version=v1.11.0 –pod-network-cidr 10.244.0.0/16 --feature-gates CoreDNS=true echo "" echo "Install flannel CNI network driver..." sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml echo "" echo "Kubernetes status..." kubectl get pod --all-namespaces echo "" echo "==========================================================" echo "Please visit https://my.oschina.net/u/2306127/blog/1628082" echo "==========================================================" echo ""
echo "" echo "==========================================================" echo "Push Kubernetes 1.11.0 Images into aliyuncs.com ......" echo "==========================================================" echo "" echo "docker tag to openthings ..." ## 添加Tag for registry.cn-hangzhou.aliyuncs.com/openthings MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings docker tag k8s.gcr.io/kube-apiserver-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0 docker tag k8s.gcr.io/kube-scheduler-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0 docker tag k8s.gcr.io/kube-controller-manager-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0 docker tag k8s.gcr.io/kube-proxy-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0 docker tag k8s.gcr.io/etcd-amd64:3.2.18 ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 docker tag k8s.gcr.io/pause-amd64:3.1 ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 docker tag k8s.gcr.io/coredns:1.1.3 ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 echo "" echo "==========================================================" echo "" ## Push镜像 echo "" echo "1.k8s-kube-apiserver-amd64" docker push ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0 echo "" echo "2.k8s-kube-controller-manager-amd64" docker push ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0 echo "" echo "3.k8s-kube-scheduler-amd64" docker push ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0 echo "" echo "4.k8s-kube-proxy-amd64" docker push ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0 echo "" echo "5.k8s-etcd-amd64" docker push ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 echo "" echo "6.k8s-pause-amd64" docker push ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 echo "" echo "7.k8s-coredns" docker push ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 echo "" echo "==========================================================" echo "Push Kubernetes 1.11.0 Images FINISHED." echo "into registry.cn-hangzhou.aliyuncs.com/openthings, " echo " by openthings@https://my.oschina.net/u/2306127." echo "==========================================================" echo ""
上面的脚本须要在可以同时访问gcr.io和阿里云的registry服务的机器上运行。镜像仓库服务我在这里用的阿里云的{华东1}的容器仓库服务(registry.cn-hangzhou.aliyuncs.com,须要注意:阿里云的每一个区都有registry服务区,是相互独立的),你能够改为本身的地址。app