阿里云+github构建镜像仓库解决 k8s.gcr.io访问

原因: k8s.gcr.io/ 镜像仓库位于国外,国内使用kubeadm构建docker集群时无法访问相应的docker镜像。

1,需要github,与阿里云镜像仓库账号

2,登录github创建自己的仓库

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第1张图片

NEW示例:

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第2张图片

3,每一个仓库下面创建一个dockerfile,以etcd为例下的dockerfile内容如下:
 

FROM k8s.gcr.io/etcd:3.3.15-0

4,登录阿里云镜像:https://cr.console.aliyun.com/,创建镜像仓库:

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第3张图片

5,绑定github

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第4张图片

6,选择镜像构建所依赖的在github仓库当中的Dockerfile仓库。

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第5张图片

构建镜像:

  • 1,进入仓库

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第6张图片

 

  • 2 点击构建:

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第7张图片

  • 3 添加规则

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第8张图片

  • 4,规则添加:

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第9张图片

5,构建镜像:一定要打开海外机器构建

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第10张图片

 

6,使用:

#阿里云提供的操作手册
1. 登录阿里云Docker Registry
$ sudo docker login --username=tb130473_2013 registry.cn-chengdu.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

2. 从Registry中拉取镜像
$ sudo docker pull registry.cn-chengdu.aliyuncs.com/shixiong/coredns:[镜像版本号]
3. 将镜像推送到Registry
$ sudo docker login --username=tb130473_2013 registry.cn-chengdu.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-chengdu.aliyuncs.com/shixiong/coredns:[镜像版本号]
$ sudo docker push registry.cn-chengdu.aliyuncs.com/shixiong/coredns:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-chengdu.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ sudo docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-chengdu.aliyuncs.com/acs/agent:0.7-dfb6816
使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。

$ sudo docker push registry-vpc.cn-chengdu.aliyuncs.com/acs/agent:0.7-dfb6816

 

7,编写一个简易的shell脚本将这些镜像pull到本地

#!/bin/bash
TAG_INFO=v1.16.3
docker pull registry.cn-chengdu.aliyuncs.com/shixiong/kube-apiserver:${TAG_INFO}
docker pull registry.cn-chengdu.aliyuncs.com/shixiong/kube-controller-manage:${TAG_INFO}
docker pull registry.cn-chengdu.aliyuncs.com/shixiong/kube-scheduler:${TAG_INFO}
docker pull registry.cn-chengdu.aliyuncs.com/shixiong/kube-proxy:${TAG_INFO}
docker pull registry.cn-chengdu.aliyuncs.com/shixiong/pause:3.1
docker pull registry.cn-chengdu.aliyuncs.com/shixiong/etcd:3.3.15-0
docker pull registry.cn-chengdu.aliyuncs.com/shixiong/coredns:1.6.2

docker tag registry.cn-chengdu.aliyuncs.com/shixiong/kube-apiserver:${TAG_INFO}  k8s.gcr.io/kube-apiserver:v1.16.3
docker tag registry.cn-chengdu.aliyuncs.com/shixiong/kube-controller-manage:${TAG_INFO}  k8s.gcr.io/kube-controller-manager:v1.16.3
docker tag registry.cn-chengdu.aliyuncs.com/shixiong/kube-scheduler:${TAG_INFO}  k8s.gcr.io/kube-scheduler:v1.16.3
docker tag registry.cn-chengdu.aliyuncs.com/shixiong/kube-proxy:${TAG_INFO}  k8s.gcr.io/kube-proxy:v1.16.3
docker tag registry.cn-chengdu.aliyuncs.com/shixiong/pause:3.1 k8s.gcr.io/pause:3.1
docker tag registry.cn-chengdu.aliyuncs.com/shixiong/etcd:3.3.15-0 k8s.gcr.io/etcd:3.3.15-0
docker tag registry.cn-chengdu.aliyuncs.com/shixiong/coredns:1.6.2 k8s.gcr.io/coredns:1.6.2

docker rmi registry.cn-chengdu.aliyuncs.com/shixiong/kube-apiserver:${TAG_INFO}
docker rmi registry.cn-chengdu.aliyuncs.com/shixiong/kube-controller-manage:${TAG_INFO}
docker rmi registry.cn-chengdu.aliyuncs.com/shixiong/kube-scheduler:${TAG_INFO}
docker rmi registry.cn-chengdu.aliyuncs.com/shixiong/kube-proxy:${TAG_INFO}
docker rmi registry.cn-chengdu.aliyuncs.com/shixiong/pause:3.1
docker rmi registry.cn-chengdu.aliyuncs.com/shixiong/etcd:3.3.15-0
docker rmi registry.cn-chengdu.aliyuncs.com/shixiong/coredns:1.6.2

8,查看本地的镜像仓库镜像文件已经存在想要的镜像文件

阿里云+github构建镜像仓库解决 k8s.gcr.io访问_第11张图片

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(centos,k8s)