详细介绍借助Docker Hub访问gcr.io镜像
前言
在搭建 Kubernetes
集群时,国内用户遇到的第一个问题就是无法访问 gcr.io 镜像,直接导致无法初始化集群也就没有办法成功搭建 Kubernetes
集群。
通常要解决此问题有几种方法:
- 通过梯子直接访问 gcr.io 镜像。由于目前对梯子的打击力度很大,使用这种方式很难。
- 通过公开的镜像服务器寻找别人搜集的镜像进行下载。缺点是匹配到的镜像版本很难找到。
- 通过国内的 gcr.io 镜像的代理进行访问。笔者尝试使用这种方法,但是由于代理失效也无法访问到镜像
- 通过将 gcr.io 的镜像搬运到
Docker hub
上进行访问。
由于前三种方法都存在一些问题。本文主要介绍第四种方法,其实现方式是通过 Docker Hub 的自动构建功能,结合 Github 仓库使用 Dockerfile
文件构建镜像。镜像完成后,可以进行 pull
和 tag
修改从而完成 Kubernetes
集群的搭建。
Kubernetes 组件
下面我们会以 kube-apiserver
的 1.18.3
版本为例详细介绍。同时列出了搭建 v1.18.3
的 kubernetes 集群所需要的组件以及事先创建好的 Docker Hub 访问地址。
k8s.gcr.io/kube-apiserver:v1.18.3
docker pull jason88/kube-apiserver:1.18.3
k8s.gcr.io/kube-controller-manager:v1.18.3
docker pull jason88/kube-controller-manager:v1.18.3
k8s.gcr.io/kube-scheduler:v1.18.3
docker pull jason88/kube-scheduler:v1.18.3
k8s.gcr.io/kube-proxy:v1.18.3
docker pull jason88/kube-proxy:v1.18.3
k8s.gcr.io/pause:3.2
docker pull jason88/pause:3.2
k8s.gcr.io/etcd:3.4.3-0
docker pull jason88/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.7
docker pull jason88/coredns:1.6.7
配置
前提条件:
需要在Docker Hub (https://hub.docker.com/) 和Github(https://github.com/) 上注册帐号并登陆。
在 Github 上创建仓库。
1.1 在
+
号上点击New repostory
。
1.2 在新建页面的
Repository name
列输入仓库名称,点击"create reposifoty"
完成创建。示例中的名称为k8s-images
。
创建新文件用来存放 Dockerfile
命令。
1.3 仓库页面,点击
"creating a new file"
。
1.4 在页面编辑页面,输入文件名称
kube-apiserver:v1.18.3
,在文件中输入内容为FROM gcr.io/google-containers/kube-apiserver:v1.18.3
。点击页面下方的"Commit new file"
。
1.5 返回仓库查看创建的文件。
1.6 按照以上步骤创建剩下的组件。
在 Docker Hub 上进行 Github 授权。
2.1 打开 帐号的
"Account Settings"
,点击"Linked Accounts"
。
2.2 在Github 后面点击
"Connect"
进行相关账户的授权
在 Docker Hub 上创建仓库。
2.3 点击页面上方的
"Repositories"
,进入到仓库管理页面。
2.4 在点击
"Create Repository"
,在name
栏中输入仓库名称"kube-apiserver"
(建议使用组件名称作为仓库名称)。
2.5 在
Build Settings
选项点击github
的图标,选择GitHub帐号和仓库。这里选择k8s-images
仓库,即上面步骤中创建的仓库。2.6 点击
Build Rules
,会出现构建规则选项卡。在Docker Tag
选项输入版本号v1.18.3
,在Dockerfile location
选项卡中输入Github 中创建的文件名称kube-apiserver:v1.18.3
,然后点击Create & Build
。
注:Dockerfile location
选项必须要与Github 中文件名称对应上。
- 2.7 在此仓库的
Builds
页面查看创建进度。
在 Recent Builds
中可以查看构建详情,状态变成 success
后就可以进行下载。
- 2.8 在
tags
中查看镜像的标签信息
结束语
- 镜像制作完成后使用 pull 命令将镜像下载到本地
- 使用tag 命令为镜像重新打标签,标签要和gcr.io 镜像标签一致。
详细介绍借助Docker Hub访问gcr.io镜像相关推荐
- 借助Docker hub自己手动制作镜像(以Nginx镜像为例)
借助Docker hub自己手动制作镜像(以Nginx镜像为例) 前言 一.Docker hub是什么? 二.镜像制作步骤 1.进入Docker hub官网,获取源文件 2.制作镜像 3.验证镜像 总 ...
- 无法访问gcr.io的几种解决办法
系列目录 由于一些原因,在国内无法访问gcr.io上的镜像,在安装kubernetes时,很多官方镜像又是都存在gcr.io上,在国内的一些教程中大都使用阿里云的镜像,但是由于阿里云镜像地址更换等原因 ...
- 无法访问gcr.io的解决办法
1. 使用国内作者制作的gcr.io镜像安装工具 GitHub - zhangguanzhang/gcr.io: sync the docker images of the gcr.io and qu ...
- 超级详细:公网环境下登录 Docker 仓库: Docker Hub 或 国内阿里镜像仓库!超级解惑!(推送镜像到docker hub 或 国内阿里云镜像仓库)
文章目录 前言: 1.登录 Docker Hub : ①.注册 或 登录 Docker Hub: ②.创建储存库: ③.开始上传镜像: ④.下载镜像: 2.使用 国内阿里云 镜像仓库: ①.开通 容器 ...
- 国内拉取 gcr.io 镜像(Google Kubernetes 镜像)
常用镜像仓库 DockerHub镜像仓库 Google 镜像仓库 https://gcr.io/google-containers/ https://gcr.io/kubernetes-hel ...
- gcr.io 国内源 —— 基于 Travis CI + GitHub + DockerHub + Google Cloud 实现自动定时同步 gcr.io 镜像到 DockerHub
一.背景介绍 由于国内网络原因,gcr.io 仓库里的镜像是无法直接拉取到的,这给开发工作造成了极大的不便 本文介绍一种方法能够实现自动化地定期地将 gcr.io 仓库中的镜像同步到个人 Docker ...
- 利用阿里云容器镜像服务下载gcr.io镜像
背景 由于你懂的原因,国内是没有办法下载gcr.io镜像的,利用docker hub构建GitHub现在又要钱,所以这里利用阿里云容器镜像服务下载gcr.io镜像. 步骤 这里以gcr.io/tekt ...
- 拉取 gcr.io 镜像,如 Kubernetes,istio 等
dockerhub根镜像代理 官方命令:docker pull nginx:latest 代理命令:docker pull dockerproxy.com/library/nginx:latest d ...
- 无法访问 gcr.io 的解决方案
通过describe 命令查看pod 情况 kubectl describe pod tiller-deploy-675cbc8478-lsqgm -n kube-system 第一步 下载阿里云的i ...
最新文章
- 一个层动态放大的例子的一些知识点
- 在物理内存中观察CLR托管内存及GC行为
- python代码安全性问题_这个python代码对注入安全吗?
- 案例:演示exception对象的使用
- [转载]完全理解关键字this
- poj 1789 Truck History prim最小生成树 基础!!!!
- jstack简单使用,定位死循环、线程阻塞、死锁等问题
- java ssh框架 运行_SSH框架的简单示例(执行流程)
- 加权贝叶斯matlab代码,使用贝叶斯优化进行深度学习
- [Vuetify] 解决mainterialicon加载慢
- 生产者消费者模型的作用是什么
- 大数据与算法系列之算法性能分析
- 报错:致命错误:Python.h:没有那个文件或目录
- 一个啃b站俄语教程的坚强日记
- 各大高校惊人江湖名号
- 花开云(织音)同款超级好看404页面源码
- 计算机考研大纲代码,2017考研大纲:计算机考研大纲文字版之计算机组成原理...
- 5G NR Rel16 两步接入/2-step RACH
- 交通规划辅助决策系统构建及佛山实践
- 【开学季征文】即将入学,谈谈我对计算机专业的认识