CRI-tools
通常,容器引擎会提供一个命令行工具来帮助用户调试容器应用并简化故障排错。比如使用 Docker 作为容器运行时的时候,可以使用 docker
命令来查看容器和镜像的状态,并验证容器的配置是否正确。但在使用其他容器引擎时,推荐使用 crictl
来替代 docker
工具。
crictl
是 cri-tools 的一部分,它提供了类似于 docker 的命令行工具,不需要通过 Kubelet 就可以通过 CRI 跟容器运行时通信。它是专门为 Kubernetes 设计的,提供了Pod、容器和镜像等资源的管理命令,可以帮助用户和开发者调试容器应用或者排查异常问题。crictl
可以用于所有实现了 CRI 接口的容器运行时。
注意,crictl
并非 kubectl
的替代品,它只通过 CRI 接口与容器运行时通信,可以用来调试和排错,但并不用于运行容器。虽然 crictl 也提供运行 Pod 和容器的子命令,但这些命令仅推荐用于调试。需要注意的是,如果是在 Kubernetes Node 上面创建了新的 Pod,那么它们会被 Kubelet 停止并删除。
除了 crictl
,cri-tools 还提供了用于验证容器运行时是否实现 CRI 需要功能的验证测试工具 critest
。critest
通过运行一系列的测试验证容器运行时在实现 CRI 时是否与 Kubelet 的需求一致,推荐所有的容器运行时在发布前都要通过其测试。一般情况下,critest
可以作为容器运行时集成测试的一部分,用以保证代码更新不会破坏 CRI 功能。
cri-tools 已在 v1.11 版 GA,详细使用方法请参考 kubernetes-sigs/cri-tools 和 Debugging Kubernetes nodes with crictl。
crictl 示例
查询 Pod
Pod 列表
镜像列表
容器列表
容器内执行命令
容器日志
参考文档
最后更新于