k8s 使用 containerd 作为容器运行时拉取 http 的 harbor 私有仓库镜像
文章目录@[toc]版本介绍报错内容解决方法主配置文件修改创建镜像仓库配置备注版本介绍k8s:v1.28.2containerd:1.6.33报错内容我的 harbor 用的是 http 的,因为是内网自己用,就没有配置 https 了,于是配置好镜像拉取的凭据,pod 拉取镜像会有以下的报错Failed to pull image "harbor.devops.icu/baseimage/pro
·
版本介绍
- k8s:v1.28.2
- containerd:1.6.33
报错内容
我的 harbor 用的是 http 的,因为是内网自己用,就没有配置 https 了,于是配置好镜像拉取的凭据,pod 拉取镜像会有以下的报错
Failed to pull image "harbor.devops.icu/baseimage/prometheus:v2.54.1": failed to pull and unpack image "harbor.devops.icu/baseimage/prometheus:v2.54.1": failed to resolve reference "harbor.devops.icu/baseimage/prometheus:v2.54.1": failed to do request: Head "https://harbor.devops.icu/v2/baseimage/prometheus/manifests/v2.54.1": dial tcp 192.168.18.222:443: connect: connection refused
解决方法
官方 Github 上面展示的配置文件介绍:hosts.md
主配置文件修改
主配置文件需要增加仓库配置文件的目录,目录名称自己定义,我这边是配置的
registry_config
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/registry_config"
创建目录
mkdir /etc/containerd/registry_config
创建镜像仓库配置
目录结构树
/etc/containerd/registry_config
└── harbor.devops.icu # 镜像仓库的 ip:端口 或者域名
└── hosts.toml # 这个文件名称是固定的
创建镜像仓库目录,这里的仓库地址换成自己的
mkdir /etc/containerd/registry_config/harbor.devops.icu
创建配置文件,
/etc/containerd/registry_config/harbor.devops.icu/hosts.toml
,仓库地址这块改成自己的,我是 http 的仓库,所以增加了skip_verify = true
server = "http://harbor.devops.icu"
[host."http://harbor.devops.icu"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true
capabilities
表示可以对镜像仓库执行的操作,总共只有"pull", "resolve", "push"
这三个值
重启 containerd
systemctl restart containerd
备注
这个只是解决了 k8s 可以直接拉取 http 私有仓库的问题,使用 ctr 命令拉取 http 私有仓库,还是需要加上
--plain-http
参数才可以
更多推荐
已为社区贡献2条内容
所有评论(0)