k8s修改/etc/docker/daemon.json為"exec-opts": ["native.cgroupdriver=systemd"]無法獲取映象問題

Yusir-SRE發表於2024-07-25

問題描述

部署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正常

相關文章