WARN[0000] image connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead.
E0623 08:08:57.723814 239026 remote_image.go:119] "ListImages with filter from image service failed" err="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory\"" filter="&ImageFilter{Image:&ImageSpec{Image:ls,Annotations:map[string]string{},},}"
FATA[0000] listing images: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory"
containerd 的原因,在k8s node做如下配置:
cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 0
debug: false
pull-image-on-create: false
disable-pull-on-run: false
EOF
这段配置是 Kubernetes 集群中 kubelet 组件的配置参数,它们用于指定 kubelet 如何与容器运行时(container runtime)进行通信,以及配置与容器镜像相关的操作。下面是每个参数的含义:
runtime-endpoint:
这个参数指定了 kubelet 与容器运行时(如 containerd 或 Docker)通信的路径。在这个例子中,它被设置为 unix:///run/containerd/containerd.sock,这意味着 kubelet 将通过 Unix 套接字文件 /var/run/containerd/containerd.sock 与 containerd 进行通信。这是 containerd 的默认通信路径。
image-endpoint:
这个参数指定了容器镜像服务的通信路径。在大多数情况下,它与 runtime-endpoint 相同,因为 Kubernetes 通常使用同一个套接字文件来进行容器运行时和镜像服务的通信。
timeout:
这个参数设置了 kubelet 与容器运行时通信的超时时间。在这个例子中,timeout 被设置为 0,这意味着没有设置超时限制,通信操作将一直等待直到完成。
debug:
这个参数用于启用 kubelet 的调试模式。如果设置为 true,kubelet 将输出更多的调试信息,这对于问题排查和调试非常有用。在这个例子中,debug 被设置为 false,表示调试模式未启用。
pull-image-on-create:
这个参数控制 kubelet 是否在创建容器时拉取镜像。如果设置为 true,kubelet 将在创建容器之前尝试从镜像仓库拉取所需的镜像。在这个例子中,它被设置为 false,意味着 kubelet 不会在创建容器时拉取镜像。
disable-pull-on-run:
这个参数控制 kubelet 是否在运行容器时拉取镜像。如果设置为 true,kubelet 将不会在 run 命令执行时拉取镜像,而是依赖于先前已经拉取的镜像。在这个例子中,它被设置为 false,意味着 kubelet 会在运行容器时尝试拉取镜像。