使用Nexus3为containerd拉取镜像进行代理和缓存
1. 概述
在局域网内部,有多个k8s节点,都需要使用公网下载镜像,占用带宽且部分镜像仓库速度慢。
这时可以使用Nexus3在内网代理所有容器镜像仓库并缓存在本地。
Nexus3介绍
官方文档: https://help.sonatype.com/repomanager3/product-information
Nexus3 (Nexus Repository Manager 3) 是一个用于存储、组织和管理软件组件(如 JAR 文件、npm 包、Docker 镜像等)的仓库管理系统。它由 Sonatype 开发并维护。Nexus Repository Manager 支持许多流行的包管理工具和格式,包括 Maven, npm, rpm, apt, PyPI , Docker。
Nexus3 提供了一个 Web UI,用户可以通过浏览器轻松地管理仓库和组件。
2. 部署Nexus3
2.1 使用dokcer部署Nexus3
# 这里为演示方便,直接使用docker一键部署
docker run -d --network=host --name nexus sonatype/nexus3
2.2 获取Nexus3默认密码
docker exec nexus cat /nexus-data/admin.password
输出
515579c3-c2f9-4c07-93e7-7d0354f98e05
2.3 登录Nexus3
使用浏览打开 http://${YOUR_SERVER_IP}:8081
账号: admin
密码: 515579c3-c2f9-4c07-93e7-7d0354f98e05
3. Nexus3创建镜像仓库代理
3.1 创建Blob Store



3.2 创建 docker hub 代理





3.3 创建 registry.k8s.io 代理





3.4 创建docker-group
docker-group用于将多个docker-proxy聚合,统一对外提供服务;
这样客户端可以只需要配置一个地址就可以代理多个仓库;





4. containerd配置代理
本文
containerd版本为1.6.21
-
编辑 containerd 配置文件。通常情况下,配置文件位于
/etc/containerd/config.toml。 -
在 config.toml 文件中,找到 [plugins.“io.containerd.grpc.v1.cri”] 部分,然后编辑或添加以下内容:
[plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."docker.io".tls]insecure_skip_verify = true[plugins."io.containerd.grpc.v1.cri".registry.configs."registry.k8s.io".tls]insecure_skip_verify = true[plugins."io.containerd.grpc.v1.cri".registry.headers][plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]# 在此配置中,“docker.io”有两个镜像端点,Containerd 将首先使用 http://nexus3.tiga.cc:8888 拉取镜像。如果 http://nexus3.tiga.cc:8888 不可用,将会使用 https://index.docker.io 。endpoint = ["http://nexus3.tiga.cc:8888","https://index.docker.io"] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]endpoint = ["http://nexus3.tiga.cc:8888"]
- 重启 containerd 服务
systemctl restart containerd
5. 验证代理
5.1 crictl命令拉取镜像
crictl pull registry.k8s.io/ingress-nginx/controller:v1.7.1
5.2 登录Nexus3查看镜像是否存在


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
