kubeadm 是kubernetes 的集群安裝工具,能夠快速安裝kubernetes 集群。kubeadm init 命令默認使用的docker鏡像倉庫為k8s.gcr.io,國內無法直接訪問,需要中轉一下才可以使用。
首先查看kubenets需要哪些鏡像
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
批量下載及轉換標簽
#下載需要的鏡像
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官方鏡像轉換下。
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
查看鏡像列表
另外一種方法是使用kubeadm配置文件,通過在配置文件中指定docker倉庫地址,便於內網快速部署。
生成配置文件
kubeadm config print-defaults --api-objects ClusterConfiguration >kubeadm.conf
將配置文件中的
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