查明节点上所使用的容器运行时

    取决于你运行集群的方式,节点所使用的容器运行时可能是事先配置好的, 也可能需要你来配置。如果你在使用托管的 Kubernetes 服务, 可能存在特定于厂商的方法来检查节点上配置的容器运行时。 本页描述的方法应该在能够执行 的场合下都可以工作。

    安装并配置 kubectl。参见安装工具 节了解详情。

    使用 kubectl 来读取并显示节点信息:

    输出如下面所示。CONTAINER-RUNTIME 列给出容器运行时及其版本。

    对于 Docker Engine,输出类似于:

    对于 containerd,输出类似于这样:

    你可以在 页面找到与容器运行时相关的更多信息。

    容器运行时使用 Unix Socket 与 kubelet 通信,这一通信使用基于 gRPC 框架的 CRI 协议。kubelet 扮演客户端,运行时扮演服务器端。 在某些情况下,你可能想知道你的节点使用的是哪个 socket。 如若集群是 Kubernetes v1.24 及以后的版本, 或许你想知道当前运行时是否是使用 dockershim 的 Docker Engine。

    说明:

    如果你的节点在通过 cri-dockerd 使用 Docker Engine, 那么集群不会受到 Kubernetes 移除 dockershim 的影响。

    1. 在命令的输出中,查找 --container-runtime--container-runtime-endpoint 标志。

      • 如果设置了 --container-runtime-endpoint 参数,查看套接字名称即可得知当前使用的运行时。 如若套接字 unix:///run/containerd/containerd.sock 是 containerd 的端点。

    如果你将节点上的容器运行时从 Docker Engine 改变为 containerd,可在 找到更多信息。或者,如果你想在 Kubernetes v1.24 及以后的版本仍使用 Docker Engine, 可以安装 CRI 兼容的适配器实现,如 cri-dockerd。 。