目錄
- 版本介紹
- 報錯內容
- 解決方法
- 主配置檔案修改
- 建立映象倉庫配置
- 備註
版本介紹
- 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
引數才可以