如何让containerd从搭建的私有http harbor仓库拉取镜像
harbor
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
项目地址:https://gitcode.com/gh_mirrors/ha/harbor
免费下载资源
·
相关版本号:
服务 | 版本号 |
containerd | 1.6.26 |
crictl | 0.1.0 |
Rocky Linux | release 8.9 (Green Obsidian) |
使用crictl pull(crictl是容器 的命令行工具)
方法1:使用config.toml文件
1.修改config.toml文件
路径/etc/containerd/config.toml(配置文件可从附件下载)
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://registry-1.docker.io"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.8.8:8888"]
endpoint = ["http://192.168.8.8:8888"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.8.8:8888".tls]
insecure_skip_verify = true
[plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.8.8:8888".auth]
username = "admin"
password = "3213213"
2.重启containerd
systemctl restart containerd
3.查看配置有无生效
containerd config dump #查看当前生效之后的配置
crictl pull 192.168.8.8:8888/library/guestbook:v2 #验证
方法2:config.toml里引用/etc/containerd/certs.d下的配置文件
1.在config.toml里引用/etc/containerd/certs.d下的配置文件
2.创建配置文件及其目录
mkdir -p /etc/containerd/certs.d/192.168.8.8:8888
cd /etc/containerd/certs.d/192.168.8.8:8888
vim hosts.toml
server = "http://192.168.8.8:8888"
[host."http://192.168.8.8:8888"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true
3.重启containerd
systemctl restart containerd
4.查看配置有无生效
containerd config dump #查看当前生效之后的配置
crictl pull 192.168.8.8:8888/library/guestbook:v2 #验证
使用ctr pull(ctr是containerd 的命令行工具)
k8s容器运行时使用containerd,则是通过ctr拉取的镜像,只能提前在node节点上使用命令下载好镜像
在上面的配置之后还需要额外配置,ctr 不读取/etc/containerd/config.toml配置文件。 此配置由 CRI 使用,这意味着 crictl 将使用它
方法1:加上--plain-http
--plain-http标志的作用是允许使用普通的 HTTP 连接来与容器注册表进行通信。这意味着当您使用ctr拉取或推送镜像时,如果您的镜像仓库配置为不使用 HTTPS 加密
ctr -n k8s.io i pull 192.168.8.8:8888/library/guestbook:v1 --plain-http
方法2:使用--hosts-dir指定自定义的主机配置文件目录
/etc/containerd/certs.d下配置文件的配置参考上面的配置
ctr -n k8s.io i pull --hosts-dir "/etc/containerd/certs.d" 192.168.8.8:8888/library/guestbook:v1
crictl和ctr区别
crictl 和 ctr是两个不同的命令行工具,它们用于与容器运行时交互,但它们的用途和上下文有所不同。
- crictl: 这是一个命令行界面,专门用于与遵循容器运行时接口(CRI)的容器运行时交互。CRI 是 Kubernetes 用来与容器运行时(如 containerd 和 cri-o)交互的标准接口。crictl 主要用于开发和调试 Kubernetes Pod 和容器。
- ctr: 这是 containerd 的原生命令行工具。它提供了直接与 containerd 容器运行时交互的能力,包括容器的管理、镜像的拉取和推送、任务的执行等。ctr更适合于底层的容器操作和调试工作。
总的来说,crictl 面向 Kubernetes 环境,而 ctr 是面向 containerd 的更通用工具。
GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb
pull image from registry.goharbor.io instead of dockerhub
Update testcase to support Docker Image Can Be Pulled With Credential
Change gitlab project name when user changed.
Update permissions count and permission count total
Change webhook_endpoint_ui
Signed-off-by: stonezdj <stone.zhang@broadcom.com>
Co-authored-by: Wang Yan <wangyan@vmware.com> 9 天前
3dbfd422
Signed-off-by: wang yan <wangyan@vmware.com> 10 天前
更多推荐
已为社区贡献2条内容
所有评论(0)