京东:三季度归属母公司净亏损28亿元,去年同期净利润76亿元
06-18
背景:不知道你是否和我一样尴尬:在kubernetes的搭建过程中,需要拉取一些镜像,比如:dockerhub镜像,这个没关系。毕竟有加速器。
但是 k8s.gcr.io、quay.io。这些要怎么做呢?我碰巧构建了 kubeadm 1.25,安装 cilium 时 helm 失败。
如果下载失败怎么办?在docker时代,还可以直接导入,但是到了containerd时代,导入是不是还比较麻烦?经过搜索引擎的搜索,我发现了以下三篇文章。让我们向他们学习吧!参考:搭建Docker镜像仓库代理搭建容器仓库镜像服务器(gcr、ghcr、quay、k8s-gcr)彻底解决gcr、quay、DockerHub镜像下载问题!搭建镜像代理仓库,Michelangelo Yang写的那个确实解决了gcr、quay、DockerHub镜像下载问题!搭建k3s集群可以在全国范围内进行比较,但是我们只有一台国外服务器,而且还是一个轻量级服务器....一开始我们下载镜像,然后上传到国内harbor仓库...这里我们使用Docker镜像仓库来作为代理来操作吧!前提条件:服务器上安装了Docker,有四个国外域名和SSL证书。
注:我的服务器是轻量级服务器,ubuntu操作系统(之前其实已经安装过docker了...)代码语言:txt copy apt-get updateapt-get updateapt-get install docker*如果是centos请参考:代码language: txt copy yum update yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo install -y docker-ce 配置Docker设置Docker的日志格式为json,日志文件大小至M,最多保存3条日志;设置Docker镜像私有仓库和官方镜像加速地址;将Docker的数据目录设置为/data/docker;设置Docker的存储驱动为overlay2。代码语言:txt copy [root@dqzboy ~]# mkdir /etc/docker[root@dqzboy ~]# cat << EOF > /etc/docker/daemon.json{ "log-driver": "json-file", "log-opts": { "max-size": "m", "max-file": "3" }, "insecure-registry": [ "hub.dqzboy.com" ], "registry-mirror": " "data-root": "/data/docker", "exec-opts": ["native.cgroupdriver=systemd"], "storage-driver": "overlay2", "storage-opts": [ "overlay2. override_kernel_check=true" ]}EOF start Docker 代码语言:txt copy systemctl enable docker && systemctl start docker 安装Docker Compose并检查版本,我没有安装最新的,毕竟可以运行。
代码语言:txt copy curl -L " -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker- compose /usr/bin/docker-composedocker-compose --versionimage。png 启动镜像仓库代理 git clone 及相关registry-proxy仓库配置文件 代码语言:txt 复制 git clone cdregistry-proxy 自定义修改配置文件,将域名的证书放在cert目录下,证书文件命名为该目录服务器名称;其中server.crt是ssl证书文件,server.key是ssl私钥注意:证书必须与域名对应,否则下载镜像时会提示修改nginx.conf配置文件,将配置文件中的域名替换为自己的域名(xxx.com)docker- compose.yaml修改我先修改以下内容。
docker-compose.yaml,原github项目仅代理gcr.io和k8s.gcr.io。嗯,这里我主要使用的是代理quay.io仓库。
如果代理其他仓库,也可以使用类似的方法!代码语言:txt 副本版本:'2' 服务:本地:container_name:reg-local 映像:findsec/registry-proxy:最新重新启动:始终 环境:- DELETE_ENABLED=true 卷:- ~/data/registry:/var/lib /registry 端口:- :网络:-registry-net 码头:container_name:reg-quay 图像:findsec/registry-proxy:最新重新启动:始终环境:-PROXY_REMOTE_URL= 卷:-~/data/registry:/var/lib/注册表网络:-registry-net gcr:container_name:reg-gcr图像:findsec /registry-proxy:最新重新启动:始终环境:-PROXY_REMOTE_URL =卷:-~/data/registry:/var/lib/registry网络:-registry -net k8s-gcr: 容器名称: reg-k8s-gcr image: findsec/registry-proxy:最新重新启动: 始终环境: - PROXY_REMOTE_URL= 卷: - ~/data/registry:/var/lib/registry 网络: -registry-net ui: 容器名称: reg-ui 图像: findsec/registry -ui:latest restart: 总是链接: - local:reg-local 环境: - REGISTRY_TITLE=我的私有 Docker 注册表 - REGISTRY_URL= - DELETE_IMAGES=true 网络: -registry-net nginx: 容器名称: reg-nginx 镜像: nginx:alpine restart : 始终端口: - 80:80 - : 链接: - ui:reg-ui - gcr:reg-gcr - quay:reg-quay - k8s-gcr:reg-k8s-gcr 卷: - ./nginx.conf:/ etc/nginx/conf.d/default.conf - ./cert:/etc/nginx/ssl 网络: -registry-netnetworks:registry-net:依着葫芦画瓢根据仓库中yaml文件中的gcr配置生成quay配置: image.pngimage.png 修改nginx.conf中域名: 代码语言:txt 复制 sed -i 's/xxx.com/zhangpeng.com/ g' nginx.confimage .png 添加码头域名相关配置:image.png 最终配置文件如下: 代码语言:txt copy server { Listen 80;听SSL;服务器名 hub.zhangpeng.com; proxy_connect_timeout; proxy_send_timeout; proxy_read_timeout;发送超时; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key;位置/{ proxy_pass proxy_buffering 关闭; proxy_request_buffering 关闭; }}服务器{ 听80;听SSL;服务器名 gcr.zhangpeng.com; proxy_connect_timeout; proxy_send_timeout; proxy_read_timeout;发送超时; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key;位置/{ proxy_pass proxy_buffering 关闭;代理请求缓冲离开; }}服务器{ 听80;听SSL;服务器名称 k8s-gcr.zhangpeng.com; proxy_connect_timeout; proxy_send_timeout; proxy_read_timeout;发送超时; ssl_certificate /etc/nginx/ssl/server.crt; 。钥匙;位置/{ proxy_pass proxy_buffering 关闭; proxy_request_buffering 关闭; }}服务器{ 听80;听SSL;服务器名称 quay.zhangpeng.com; proxy_connect_timeout; proxy_send_timeout; proxy_read_timeout;发送超时; ssl_certificate_key /etc/nginx/ssl/server.key;位置/{ proxy_pass proxy_buffering 关闭; proxy_request_buffering 关闭; }}ssl 证书。
记得上传ssl证书到cert目录:image.png。当然,你也可以修改docker-compose。
yaml。修改nginx中volumes中image.png的挂载路径。
您还可以修改 nginx.conf 文件中的 ssl_certificate ssl_certificate_key。文件名称: 图像e.png 启动镜像仓库代理代码语言:txt 复制 docker-compose up -ddocker-compose logs -f 可能会出现证书配置不正确的错误。
哈哈哈,下面的问题自己解决吧……我用的是dnspodimage来解析域名。 .png 使用镜像仓库代理。
本地工作环境安装的是rocky 8.5的podman。使用podman测试:代码语言:txt copy ###下载镜像 [root@zhangpeng ~]# podman pull k8s.gcr.io/pause:3.6# ##通过镜像仓库代理下载:[root@zhangpeng ~]# ]# podman pull k8s-gcr.zhangpeng.com/pause:3.6image.png 访问 hub.zhangpeng.com可以看到我们下载的图片是缓存的image.png。
接下来,我们可以进阶一下:图像清理不能总是被缓存。如果空间满了怎么办?最简单的办法就是写一个crontab: 代码语言:txt copy* * */2 * * /usr/bin/rm -rf /var/lib/registry/* &>/dev/null 镜像不行怎么办反白嫖认证服务器的代理是免费使用的吗?最简单的方法就是创建一个htpasswd: 代码语言:txt copy apt-get install apache2-utilsimage.png 代码语言:txt copy htpasswd -c passwd zhangpengimage.png 然后修改nginx.conf文件。
我这里只是修改了k8s来演示。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-18
06-18
06-17
06-17
06-21
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用