当前位置:运维

问题描述

当使用kubeadm命令初始化集群时,默认会去官方镜像仓库(k8s.gcr.io)拉取镜像。但是国内网络由于众所周知的原因无法访问官方镜像仓库,导致集群初始化失败。

解决方案

方法一、手动拉取镜像

1.查看需要拉取的镜像

 kubeadm config images list

#上述命令可能会卡顿,因为它需要访问dl.k8s.io地址获取版本,因此可以手动指定版本

kubeadm config images list --kubernetes-version 1.10.0

上述命令会产生类似如下输出:

 k8s.gcr.io/kube-apiserver:v1.10.0

k8s.gcr.io/kube-controller-manager:v1.10.0

k8s.gcr.io/kube-scheduler:v1.10.0

k8s.gcr.io/kube-proxy:v1.10.0

k8s.gcr.io/pause:3.0

k8s.gcr.io/etcd:3.2.24

k8s.gcr.io/coredns:1.2.2

2.拉取目标镜像到本地

 docker pull registry.cn-hangzhou.aliyuncs.com/osoulmate/flannel:v0.10.0-amd64

docker pull registry.cn-hangzhou.aliyuncs.com/osoulmate/kube-apiserver-amd64:v1.10.0 

docker pull registry.cn-hangzhou.aliyuncs.com/osoulmate/kube-controller-manager-amd64:v1.10.0

docker pull registry.cn-hangzhou.aliyuncs.com/osoulmate/kube-proxy-amd64:v1.10.0

docker pull registry.cn-hangzhou.aliyuncs.com/osoulmate/kube-scheduler-amd64:v1.10.0

docker pull registry.cn-hangzhou.aliyuncs.com/osoulmate/pause-amd64:3.0

3.给镜像打上默认镜像标签

 docker tag registry.cn-hangzhou.aliyuncs.com/osoulmate/kube-apiserver-amd64:v1.10.0 k8s.gcr.io/kube-apiserver:v1.10.0

4.推送到私有仓库(可选)

方法二 使用—image-repository参数(适用于1.13.0之后版本)
 kubeadm init --image-repository registry.aliyuncs.com/google_containers

评论
一些有趣的事儿