今天发现一个问题就是在本机的 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 看到的版本终究是比较正确的