[转帖]国内拉取google kubernetes镜像
国内拉取google kubernetes镜像
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/networken/article/details/84571373 感谢原作者.
前言
国内可访问的镜像仓库
Docker Hub镜像仓库
https://hub.docker.com/
阿里云镜像仓库:
https://cr.console.aliyun.com
RedHat镜像仓库:
https://access.redhat.com/containers
国内无法访问的镜像仓库
google镜像仓库:
https://console.cloud.google.com/gcr/images/google-containers/GLOBAL
coreos镜像仓库:
https://quay.io/repository/
临时解决方法:
- 在部署kubernetes集群时,需要从google镜像仓库获取kubernetes组件相关镜像,以及从coreos仓库获取flannel网络插件等镜像,但dockerhub或阿里云仓库基本能够搜索到他人上传的包含这2个仓库中的镜像,我们只需要拉取到本地以后改回默认的镜像tag即可。
- 另外dockerhub对google仓库做了镜像mirror,因此可以在google镜像名称前加mirrorgooglecontainers,即可直接在dockerhub拉取google镜像,拉取到本地后同样改回google仓库默认tag即可。
例如拉取kube-apiserver-amd64:v1.13.2镜像使用如下格式即可:
# google镜像默认格式 k8s.gcr.io/kube-apiserver:v1.13.2 # dockerhub拉取镜像 $ docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.2 # 修改tag $ docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.13.2 k8s.gcr.io/kube-apiserver-amd64:v1.13.2 # 成功拉取的镜像 $ docker images | grep kube-apiserver mirrorgooglecontainers/kube-apiserver-amd64 v1. months ago 181MB k8s.gcr.io/kube-apiserver-amd64 v1. months ago 181MB
从阿里云镜像仓库搜索并拉取
# 从阿里云镜像仓库拉取镜像 $ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.13.0 # 修改镜像tag $ docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.13.0 k8s.gcr.io/kube-apiserver:v1.13.0
创建个人仓库
我们也可以在dockerhub或阿里云创建个人仓库,把需要的最新版本镜像从google仓库push到个人仓库,一般有几下几种方法:
1.购买云服务器
最简单的方法就是,购买1台能同时访问国外和国内网络的云服务器,使用docker login登录dockerhub或阿里云仓库,docker push命令推送上去然后再拉取到本地即可。
如果不想购买服务器又能够访问国外网络,建议使用google提供的cloud shell:
https://console.cloud.google.com/cloudshell
它类似一个永久免费的拥有5G存储空间的linux服务器,能够执行所有docker命令和bash命令,能够访问全球网络。
2.Travis CI推送镜像
使用travis CI+GitHub将镜像docker push到国内镜像仓库。
3.Github镜像构建
使用github的dockerfile构建功能,将镜像构建到国内仓库。
参考:https://blog.csdn.net/networken/article/details/85215714
Travis CI推送dokcer镜像
下面介绍第2种方法,使用travis CI+GitHub的方法将镜像拉取到阿里云或者dockehub。
创建github仓库
首先登录github创建一个仓库,名称自定义,仓库包含如下3个文件:
- push-images.sh 脚本文件
- imagepath.txt 镜像列表文件
- .travis.yaml 自动构建文件
示例仓库:https://github.com/willzhang/DockerImages
push-images.sh脚本内容如下,主要从国外镜像仓库pull镜像,打tag,并push到阿里云或dockerhub.
#!/bin/bash
for imagepath in $(cat ./imagepath.txt)
do
imagename=$(echo $imagepath | awk -F '/' '{print $NF}')
docker pull $imagepath
# push到阿里云仓库
docker tag $imagepath registry.cn-hangzhou.aliyuncs.com/aliwill/$imagename
docker push registry.cn-hangzhou.aliyuncs.com/aliwill/$imagename
# push到dockerhub
docker tag $imagepath willdockerhub/$imagename
docker push willdockerhub/$imagename
done
imagepath.txt主要包含国内无法拉取的镜像列表,注意必须为完整镜像路径和名称,示例如下:
gcr.io/google-containers/kube-apiserver-amd64:v1.12.0 quay.io/external_storage/nfs-client-provisioner:latest
.travis.yaml文件主要监控github仓库的代码变动,当有代码变动时比如imagepath.txt写入新的镜像列表时将触发tarvis的自动构建,.travis.yaml文件内容如下:
language: bash services: - docker script: - docker login -u $ALI_USERNAME registry.cn-hangzhou.aliyuncs.com -p $ALI_PASSWORD - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - bash push-images.sh
这里需要登录阿里云或dockerhub才能执行docker push操作,其中$ALI_USERNAME这类变量在TravisCI管理界面定义好即可。
TravisCI配置
访问travis官网: https://www.travis-ci.org/, 使用github账号登录。
开启需要进行自动化构建的仓库即可:
另外需要点击右上角的more options —》settings选项,定义写在.travis.yaml中的账号密码等敏感参数。
当对github仓库执行git commit、git push操作时将自动触发构建,执行仓库中的脚本,这里的构建结果如下:
登录阿里云或dockerhub查看,imagepath.txt 列表中的镜像已经成功被push上来:
注意:push到阿里云的镜像默认为私有的,可以手动改为公开的。

日常拉取镜像方法:
修改imagepath.txt,写入需要拉取的镜像完整路径,保存后travis-CI监测到仓库代码变动,自动触发构建,几分钟后镜像就会被自动拉取到个人仓库。
参考:
https://blog.csdn.net/nklinsirui/article/details/80581286
[转帖]国内拉取google kubernetes镜像的更多相关文章
- 利用docker hub做中转拉取google的k8s镜像
1.背景 部署kubernetes,需要FQ.但是在初始化的时候,即是FQ了有的镜像pull依然会超时,导致初始化失败.而你又不想使用国内的一些镜像源,因为更新不及时.很多新功能和插件都不会包括,只想 ...
- Docker / Kubernetes 镜像源
由于众所周知的原因, Docker 官方镜像仓库和 Google 镜像仓库在国内访问速度很慢或者不可用.这样就给我们在部署和使用 Kubernetes 时带来了极大的不便.今天我们就来介绍几种方法,可 ...
- 访问Google搜索,Google学术镜像搜索
Google学术镜像搜索:http://dir.scmor.com/google/ 不用FQ也能访问谷歌搜索网站,让我们一起Google 不用FQ也能访问谷歌搜索网站,让我们一起Google(摘自:h ...
- 关于python抓取google搜索结果的若干问题
关于python抓取google搜索结果的若干问题 前一段时间一直在研究如何用python抓取搜索引擎结果,在实现的过程中遇到了很多的问题,我把我遇到的问题都记录下来,希望以后遇到同样问题的童 ...
- [Docker]Docker拉取,上传镜像到Harbor仓库
需求 因为项目的需求,需要制作一个基于tomcat的镜像.那么前提就是,需要有tomcat的基础镜像. 怎么做 我的思路跑偏了,本来以为是需要将tomcat下载下来,然后通过docker命令,让它成为 ...
- 使用阿里巴巴开源镜像站镜像——Kubernetes 镜像
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 Kubernetes 镜像简介 Kubernetes 是一个开源系统,用于容器化应用的自动部署.扩缩和管理.它将构成应用的容器按逻辑单位进行分组以 ...
- kubernetes配置secret拉取私仓镜像
2017.05.10 19:48* 字数 390 阅读 5216评论 0喜欢 8 对于公司内部的项目, 我们不可能使用公有开放的镜像仓库, 一般情况可能会花钱买docker私仓服务, 或者说自己在服务 ...
- 解决kubernetes拉取不了镜像仓库的问题
将镜像仓库地址k8s.gcr.io改成registry.aliyuncs.com/google_containers
- Kubernetes国内镜像、下载安装包和拉取gcr.io镜像
参考: https://blog.csdn.net/nklinsirui/article/details/80581286
随机推荐
- CSS 图片自适应容器
https://www.jb51.net/css/660677.html 经常有这样一个场景,需要让图片自适应容器的大小. 1.img标签的方式 我们马上就能想到,把width.height 设置为1 ...
- IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表
原文: IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表 IDT,Interrupt Descriptor Table,中断描述符表是CPU用来处理中 ...
- Centos 7 搭建蓝鲸V4.1.16稳定社区版
在本地用VMware模拟了三台主机 准备至少3台 CentOS 7 以上操作系统的机器,保证三台虚拟机都可以上网 最低配置:2核4G(我用的是这个) 建议配置: 4核12G 以上 192.168.16 ...
- 0和5 (51Nod)
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前 ...
- 在windows使用gvim的感受
用新下载的gvim写几行代码习惯一下,感觉vim用起来要比atom占用的内存少多了,更加的便捷.由于之前一直在用sublime text2,虽然我也很喜欢ST,但我还是抱着膜拜的心态来试了试gvim, ...
- codeforces#1166F. Vicky's Delivery (Service并查集+启发式合并)
题目链接: https://codeforces.com/contest/1166/problem/F 题意: 给出节点数为$n$,边数为$m$的图,保证每个点对都是互连的 定义彩虹路:这条路经过$k ...
- Linux 系统设置命令之ulimit
定义 ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小.进程数据块的大小.Shell 进程创建文件的大小.内存锁住的大小.常驻内存集的大小.打开 ...
- POJ 3177 (Redundant Paths) —— (有重边,边双联通,无向图缩点)
做到这里以后,总算是觉得tarjan算法已经有点入门了. 这题的题意是,给出若干个点和若干条边连接他们,在这个无向图中,问至少增加多少条边可以使得这个图变成边双联通图(即任意两点间都有至少两条没有重复 ...
- AD域渗透总结
域渗透总结 学习并做了一段时间域网络渗透,给我直观的感受就是思路问题和耐心,这个不像技术研究,需要对一个点进行研究,而是遇到问题后要从多个方面思考,寻找"捷径"思路,只要思路正确, ...
- Liunx反弹shell的几种方式
什么是反弹shell? 简单理解,通常是我们主动发起请求,去访问服务器(某个IP的某个端口),比如我们常访问的web服务器:http(https)://ip:80,这是因为在服务器上面开启了80端口的 ...