Kubernetes搭建过程中使用k8s.gcr.io、quay.io、docker.io的镜像加速

前言

因为众所周知的原因,在使用Kubernetes和docker的时候会出现一些镜像无法拉取或者速度较慢的情况,错误信息类似以下:

[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-proxy:v1.17.3: output: Error response from daemon ...
Failed to pull image "quay.io/coreos/flannel:v0.11.0-amd64": rpc error: code = Unknown desc = net/http: request canceled ...

之前一直使用的是Azure中国的镜像,经读者提醒,该镜像站已经不能用了,中科大的也不是很稳定。

接下来记录下使用阿里云从海外构建镜像的过程,虽然麻烦点,是能解决问题。

在阿里云创建镜像仓库

首先进入阿里云的容器镜像服务

我这已经是开通过的界面了,没开通过的什么样已经忘了。

没有创建命名空间的就创建一个,创建好了之后点击“创建仓库镜像”。这里我们拿kube-apiserver做例子。

点击下一步,选择代码源,作者这里用的是GitHub,已经绑定好了。记得勾选“海外机器构建”

准备github仓库

这是我仓库的地址:https://github.com/orccn/kube-dockerfile

仓库的每个目录下都有一个Dockerfile

├── README.md
├── coredns
│   └── Dockerfile
├── etcd
│   └── Dockerfile
├── kube-apiserver
│   └── Dockerfile
├── kube-controller-manager
│   └── Dockerfile
├── kube-proxy
│   └── Dockerfile
├── kube-scheduler
│   └── Dockerfile
└── pause
    └── Dockerfile

kube-apiserver/Dockerfile 的内容只有一句话。

FROM k8s.gcr.io/kube-apiserver:v1.17.5

添加规则、构建

仓库准备ok后,创建完成,然后点击进入刚创建的仓库,点击左侧“构建”,然后点击右侧“添加规则”

规则添加完后,点击“立即构建”,可以看到下方的构建日志

到此时为止,一个镜像就已经生成了。然后就是到你需要的地方 docker pulldocker tag

$ docker pull registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5
v1.17.5: Pulling from k6s/kube-apiserver
597de8ba0c30: Pull complete
e13a88fa950c: Pull complete
Digest: sha256:5ddc5c77f52767f2f225a531a257259228d74b32d8aac9cfe087251f998c42f3
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5
registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5

$ docker tag registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5 k8s.gcr.io/kube-apiserver:v1.17.5

其他的镜像如法炮制。

在Docker配置文件中配置加速器

$ vi /etc/docker/daemon.json  

//添加以下内容
{
     "registry-mirrors": ["https://hub-mirror.c.163.com"]
}
原文地址:https://www.cnblogs.com/flhs/p/12383895.html