kubeadm 是kubernetes 的集羣安裝工具,可以快速安裝kubernetes 集羣。kubeadm init 命令默認使用的docker鏡像倉庫爲k8s.gcr.io,國內沒法直接訪問,須要中轉一下才能夠使用。docker
首先查看kubenets須要哪些鏡像api
kubeadm config images list
[root@master yum.repos.d]# kubeadm config images list k8s.gcr.io/kube-apiserver:v1.14.0 k8s.gcr.io/kube-controller-manager:v1.14.0 k8s.gcr.io/kube-scheduler:v1.14.0 k8s.gcr.io/kube-proxy:v1.14.0 k8s.gcr.io/pause:3.1 k8s.gcr.io/etcd:3.3.10 k8s.gcr.io/coredns:1.3.1
經過 docker.io/mirrorgooglecontainers中轉一下https://hub.docker.com/u/mirrorgooglecontainers工具
批量下載及轉換標籤google
#下載須要的鏡像
kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#mirrorgooglecontainers#g' |sh -x
kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/mirrorgooglecontainers#g' |sh -x
#重命名鏡像
docker images |grep mirrorgooglecontainers |awk '{print "docker tag ",$1":"$2,$1":"$2}' |sed -e 's#mirrorgooglecontainers#k8s.gcr.io#2' |sh -x
#刪除mirrorgooglecontainers鏡像
docker images |grep mirrorgooglecontainers |awk '{print "docker rmi ", $1":"$2}' |sh -x
coredns沒包含在docker.io/mirrorgooglecontainers中,須要手工從coredns官方鏡像轉換下。spa
docker pull coredns/coredns:1.3.1
docker pull coredns/coredns:1.3.1 docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1 docker rmi coredns/coredns:1.1.3
查看鏡像列表code
另一種方法是使用kubeadm配置文件,經過在配置文件中指定docker倉庫地址,便於內網快速部署。server
生成配置文件blog
kubeadm config print-defaults --api-objects ClusterConfiguration >kubeadm.conf
將配置文件中的dns
imageRepository: k8s.gcr.io
改成你本身的私有docker倉庫,好比部署
imageRepository: docker.io/mirrorgooglecontainers
kubeadm生成的配置文件目前不夠完善,須要修改kubernetes版本
kubernetesVersion: v1.13.1
改成
kubernetesVersion: v1.14.0
kubeadm config images list --config kubeadm.conf kubeadm config images pull --config kubeadm.conf kubeadm init --config kubeadm.conf