問題描述
部署k8s環境後,準備新建一個deployment發現拉取pod時無法拉取到映象,報錯如下:
Failed to pull image "nginx:1.14.2": rpc error: code = Unknown desc = error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/29/295c7be079025306c4f1d65997fcf7adb411c88f139ad1d34b537164aa060369/data?verify=1721837818-JjLOluubolRdRzcQq4CZ3GPwPIY%3D: dial tcp 156.233.67.243:443: connect: connection refused
檢視docker.service報錯
Jul 24 23:30:52 k8s-master01 dockerd[1207]: time="2024-07-24T23:30:52.909292606+08:00" level=error msg="Not continuing with pull after error: error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/29/295c7be079025306c4f1d65997fcf7adb411c88f139ad1d34b537164aa060369/data?verify=1721838031-BwtlCeJaP4VXqTOao3b0cXLkePY%3D: dial tcp 108.160.165.189:443: connect: connection refused"
解答思路
根據上訴報錯,經過網路問題排查以後發現本身網路並沒有問題,發現無法連線到https://production.cloudflare.docker.com/,故推斷是無法連線Docker Hub,估計是國外映象倉庫有關,所以獲取不到映象
解決方法
修改/etc/docker/daemon.json,新增"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]",修改為阿里雲的映象倉庫地址
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
修改後問題解決(只改了master01的節點,所以只有master01上的pod恢復正常)
擴充套件點
在修改其他master節點跟node節點時,需要將docker服務與kubelet服務一起重啟,否則其他工作節點將處於不可用狀態,所有工作節點修改完並重啟服務後恢復正常
node節點正常:
pod正常: