containerd 的版本和 kubectl 查看到的版本不匹配

1,510 阅读1分钟

今天发现一个问题就是在本机的 host上看到的contaienrd的居然与在集群中使用 kubectl 看到的 containerd 的版本不匹配,那这究竟是哪个看到的比较正确

  • 查看 containerd 的版本的命令是 containerd --version

  • 集群里面查看containerd的版本的命令就是 kubectl get node -owide

发现本机上查看到的版本是 v1.7.0

但是集群里面看到的版本是 是 v1.6.6

这个原因就在于:

kubectl 看到的是通过 cri 接口拿到的,如果 node 是 ready 的,应该能看到1.6.6版本的启动中的 containerd

containerd --version命令是内置的 containerd 二进制在别的路径

我们查看机器上实际运行的 containerd 进程,发现其运行的是 /usr/bin/containerd

再看一下查看命令的 containerd 的二进制所在位置,发现是在 /usr/local/bin/containerd

那说明机器真正的 containerd 的版本应该用 /usr/bin/containerd 查看

/usr/bin/containerd --version
containerd github.com/containerd/containerd v1.6.6 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1

发现版本和 k8s 上显示的版本一致,这说明 kubectl 看到的版本终究是比较正确的