Kubernetes在v1.20 版本宣布棄用 Dockershim
(在v1.24正式移除),改用CRI接口去操作更為基礎(chǔ)的containerd或CRI-O。
K8S在創(chuàng)建容器時(shí),或多或少有些鏡像無法正常拉取(網(wǎng)絡(luò)等原因)。
還在使用Docker Engine
時(shí)我們能方便的pull第三方同步的鏡像,然后tag成需要的標(biāo)簽版本,讓K8S從本地獲取到想要的鏡像。
因Docker
將其容器格式和運(yùn)行時(shí)runC捐贈給OCI
(開放容器標(biāo)準(zhǔn)),OCI標(biāo)準(zhǔn)化了容器工具和底層實(shí)現(xiàn)之間的大量接口。
因此改用containerd
或CRI-O
萬變不離其宗,他們都支持運(yùn)行符合OCI
標(biāo)準(zhǔn)的鏡像。
理論存在,實(shí)踐開始。我集群的容器運(yùn)行時(shí)是containerd
,以我想在K8S中安裝prometheus為例,拉取不到需要的鏡像prometheus-adapter。
一如既往,先從安裝了docker的機(jī)器中拉image(可在docker hub或其他鏡像源中搜索想要的鏡像和版本),打tag,保存,傳輸
# 在 docker hub 上找到了第三方幫忙同步的 prometheus-adapter:v0.10.0
docker pull v5cn/prometheus-adapter:v0.10.0
# 為鏡像打上k8s需要的 tag
docker tag v5cn/prometheus-adapter:v0.10.0 registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.10.0
# 將鏡像保存下來
docker save -o /data/prometheus-adapter.tar registry.k8s.io/prometheus-adapter/prometheus-adapter
# 復(fù)制給各k8s worker節(jié)點(diǎn)
scp /data/prometheus-adapter.tar #賬號@機(jī)器:路徑
然后連接各K8S worker node,進(jìn)行鏡像導(dǎo)入。注意要導(dǎo)入至K8S使用的containerd默認(rèn)命名空間是 k8s.io 否則它會找不到鏡像
# 導(dǎo)入,-n 參數(shù)為指定命名空間
ctr -n k8s.io image import prometheus-adapter.tar
# 確認(rèn)下導(dǎo)入
ctr -n k8s.io image list | grep prometheus
# crictl是Kubernetes社區(qū)定義的CRI接口工具,在這邊也確認(rèn)下
crictl image | grep prometheus
文章來源:http://www.zghlxwxcb.cn/news/detail-514894.html
至此K8S已能在本地找到相應(yīng)鏡像(記得確認(rèn)imagePullPolicy
已設(shè)置為IfNotPresent
或Never
)文章來源地址http://www.zghlxwxcb.cn/news/detail-514894.html
到了這里,關(guān)于K8S Containerd導(dǎo)入Docker image鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!