正文:
首先需要了解 crictl 是什么,之前已经了解过 containerd 和 ctr,详见这篇文章 Containerd 的安装和基本使用。
ctr 是 containerd 自带的命令行工具,而 crictl 是 Kubernetes 中 CRI(容器运行时接口)的客户端。Kubernetes 使用 crictl 客户端与 containerd 进行交互。
常用命令
1 查看镜像
crictl image/images
2 拉取镜像
crictl pull nginx
3 删除镜像
crictl rmi nginx
4 查看镜像信息
crictl inspecti <image-id>
crictl 缺少对具体镜像的管理能力,如没有导入导出镜像、给镜像打标签、推送镜像等功能。
容器相关
1 查看容器
crictl ps
2 运行容器
# 需要配置文件
crictl run container-config.yaml pod-config.yaml
3 暂停容器
crictl stop <container-id>
使用 crictl stop 命令只会停止容器,而不会直接改变 Pod 的状态。Pod 的状态由 Kubernetes 控制器(如 Deployment、StatefulSet 等)管理,控制器负责确保 Pod 的期望状态,并持续监控 Pod 的运行情况。因此,停止容器并不会影响控制器对 Pod 的管理和监控。
4 启动容器
crictl start <container-id>
5 删除容器
crictl rm <container-id>
6 查看容器占用资源
crictl stats
7 查看容器状态
crictl inspect <container-id>
8 查看日志
crictl logs <container-id>
9 进入容器
crictl exec -it <container-id> bash
pod 相关
1 查看 pod
crictl pods
2 创建 pod
# 需要配置文件
crictl run pod-config.yaml
3 查看 pod 占用资源
crictl statsp
4 暂停 pod
crictl stopp <pod-id>
暂停后使用 kubectl get pod 发现 nginx-pod 的状态为 Error。
5 删除 pod
crictl rmp <pod-id>
删除 pod 后,k8s 似乎会新建一个 pod。
6 查看 pod 状态
crictl inspectp <pod-id>
转载请注明:汇站网 » CRI 客户端 crictl 的基本使用方法