创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。

操作系统信息
vmware虚拟机2台,Ubuntu 22.04,4C/16G

Kubernetes版本信息
Client Version: version.Info{Major:“1”, Minor:“26”, GitVersion:“v1.26.12”, GitCommit:“df63cd7cd818dd2262473d2170f4957c6735ba53”, GitTreeState:“clean”, BuildDate:“2023-12-19T13:43:37Z”, GoVersion:“go1.20.12”, Compiler:“gc”, Platform:“linux/amd64”}

Kustomize Version: v4.5.7

Server Version: version.Info{Major:“1”, Minor:“26”, GitVersion:“v1.26.12”, GitCommit:“df63cd7cd818dd2262473d2170f4957c6735ba53”, GitTreeState:“clean”, BuildDate:“2023-12-19T13:32:17Z”, GoVersion:“go1.20.12”, Compiler:“gc”, Platform:“linux/amd64”}

容器运行时
Client:

Version: 24.0.9

API version: 1.43

Engine:

Version: 24.0.9

API version: 1.43 (minimum version 1.12)

Go version: go1.20.13

containerd:

Version: v1.7.13

runc:

Version: 1.1.12

docker-init:

Version: 0.19.0

KubeSphere版本信息
v4.1.2 ,使用kk安装,

KubeKey版本信息
v3.17

问题是什么
完全依照V4.1文档的离线部署方法,执行到部署k8s集群时,有很多pod因为无法拉取镜像而报错,详细错误截图及配置文件如下。

谢谢各位老铁

又作了以下尝试/检查,没有解决:

1、添加信任证书:把/etc/docker/certs.d/dockerhub.kubekey.local 目录下的ca.crt 放到/usr/local/share/ca-certificates,执行update-ca-certificates
2、执行 curl -I http://dockerhub.kubekey.local,正确返回HTTP/1.1 200 OK
3、docker pull dockerhub.kubekey.local/ks/calico/cni:v3.27.4 能正常拉取
当前报错如下:
Events:

Type Reason Age From Message


Normal BackOff 92s (x376 over 86m) kubelet Back-off pulling image “dockerhub.kubekey.local/ks/calico/cni:v3.27.4”

15 天 后

有网友可以指教一二吗❓

23 天 后

@小k 可否回答一下这个问题

  • 小kK零S

    • 已编辑

    根据您的描述,pod在拉取镜像时报 tls: failed to verify certificate: x509: certificate signed by unknown authority, 通常是由于自签名证书仓库无法被容器运行时认可所致,可尝试以下方法解决:

    方法一:

    将自签名证书拷贝至 /etc/docker/certs.d 目录下(可从可以正常拉去镜像的节点拷贝)

    方法二:

    在 /etc/docker/daemon.json 中 将该仓库设置为 insecure-registries 并重载 docker

    # /etc/docker/daemon.json 中设置 insecure-registries 
    {
      "insecure-registries" : ["<your-registry>"]
    }
    
    # 重载docker
    systemctl reload docker