You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何containerd集群crictl ps无kubelet容器?与docker ps差异及解决方法

docker ps 与 crictl ps 的核心差异
  • 管理对象范围不同:
    • docker ps 是Docker引擎(dockerd)的专属客户端命令,仅能查看由dockerd直接创建和管理的所有容器,包括节点上非Kubernetes调度的Docker容器、以及用Docker部署的系统组件容器(比如你的Docker集群中以容器方式运行的kubelet)。
    • crictl ps 是CRI(容器运行时接口)的通用客户端工具,仅对接集群配置的CRI运行时(比如你的containerd集群),只能查看Kubernetes调度创建的Pod对应的容器——也就是属于Kubernetes Pod资源的容器,节点上由systemd等系统服务直接启动的进程(非CRI创建的容器)不在它的管理范围内。
  • 依赖的运行时不同:
    • docker ps 完全依赖Docker守护进程,脱离dockerd无法使用。
    • crictl 是标准化工具,只要集群配置了符合CRI规范的运行时(containerd、cri-o等),就能对接使用,不绑定特定容器引擎。
能否通过 crictl ps 查看 kubelet 容器?

默认情况下不行,因为kubelet作为Kubernetes节点的核心代理组件,通常是以systemd系统服务的方式直接运行在节点主机上,并非通过containerd(CRI运行时)创建的容器,所以不在crictl的管理视野内。

如果一定要让crictl ps能查到kubelet,需要将kubelet改为通过containerd以容器方式启动,但这种做法会大幅增加部署复杂度:kubelet本身需要管理containerd、访问节点的网络/存储/设备资源,容器化运行会带来权限、依赖循环等问题,生产环境中不推荐这种操作。

内容的提问来源于stack exchange,提问作者cook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:25:25