crictl报错,containerd配置
报错:
WARN[0000] runtime 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.
E0903 00:21:25.819211 14500 remote_runtime.go:673] "ListContainerStats with filter from runtime 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="&ContainerStatsFilter{Id:,PodSandboxId:,LabelSelector:map[string]string{},}"
FATA[0000] get container stats: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory"
分析:看提示是默认的endpoints配置的sock在当前主机里不存在。
当前环境测试执行【ll /var/run/dockershim.sock】确实提示不存在:
然后查看其它runtime,执行【ll /run/containerd/containerd.sock】是存在的
现在修改crictl的配置文件:
cat << EOF | tee /etc/crictl.yaml
runtime-endpoint: "unix:///run/containerd/containerd.sock"
timeout: 0
debug: false
EOF
这个修改后,crictl每次执行会自动读取这个配置文件,所以是立即生效的。
报错:
[root@master sysctl.d]# crictl info
FATA[0000] validate service connection: CRI v1 runtime API is not implemented for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService
注释掉containerd默认配置里的【disabled_plugins】
sed -i 's/disabled_plugins/#disabled_plugins/g' /etc/containerd/config.toml
# 重启containerd
systemctl restart containerd