K8s crictl 客户端学习
2026/4/21 2:22:10 网站建设 项目流程

crictl客户端工具学习

  • 一、 crictl 介绍
  • 二、crictl 的安装配置
  • 三、crictl 的使用和常见参数

一、 crictl 介绍

crictl ( 容器运行时接口(CRI)CLI)

crictl 为兼容 CRI 的容器运行时提供了 CLI。这使得 CRI 运行时开发者无需设置 Kubernetes 组件即可调试运行时,只需要配置运行时端点即可。

crictl 自 v1.11.0 以来一直发布,目前正在积极开发中。它托管在 cri-tools 仓库中。我们鼓励 CRI 开发者报告漏洞,或通过增加更多功能帮助扩展覆盖范围。

二、crictl 的安装配置

在点击发布地址,进行下载。

安装方式非常简单,只需要放到环境变量即可:

tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin

配置crictl ,设置容器运行时的端点或者说指定本地sock文件路径

可以通过查看kubelet的配置文件,cat /var/lib/kubelet/config.yaml | grep containerRuntimeEndpoint找出连接容器运行时使用的本地sock文件路径

cat /etc/crictl.yaml

也可以通过-i镜像服务套接字地址 和-r容器运行时套接字地址,使用--config=file.yaml也使用读取指定配置文件

# 指定连接容器运行时套接字地址,主要负责容器的生命周期 runtime-endpoint: unix:///run/containerd/containerd.sock # 指定连接镜像服务的套接字地址,主要负责镜像的生命周期 image-endpoint: unix:///run/containerd/containerd.sock # 连接超时时间 timeout: 2 # 不开启调试模式,无冗余日志 debug: false # 在使用 crictl create 容器 创建容器时,当镜像不存在直接报错,若设置为true,则拉取镜像 pull-image-on-create: false

测试是否能连接到容器运行时:
crictl ps

CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD NAMESPACE be259437bd0ef a0af72f2ec6d6 About an hour ago Running kube-controller-manager 6 83a264cec164a kube-controller-manager-k8s-master kube-system aefde61a052fb 46169d968e920 About an hour ago Running kube-scheduler 6 d7d7543cd2157 kube-scheduler-k8s-master kube-system 10852f4b7cc1c 52546a367cc9e 2 hours ago Running coredns 5 25acf4a30f3af coredns-7cc97dffdd-5btrb kube-system d7d174be49aaa df191a54fb79d 2 hours ago Running calico-kube-controllers 5 390cc425c2556 calico-kube-controllers-59556d9b4c-6w97w kube-system 01517da4b96fa b9e1e3849e070 2 hours ago Running metrics-server 5 972a6da1a93f2 metrics-server-7f594c7b89-kjpr7 kube-system 7593d67ecf26f 52546a367cc9e 2 hours ago Running coredns 5 aeb0fc04f4fa8 coredns-7cc97dffdd-hmll2 kube-system 216a7bc234ea1 ce9c4ac0f175f 2 hours ago Running calico-node 5 7367e5d1f456a calico-node-6g8kn kube-system 8c95d0aa88fb9 df0860106674d 2 hours ago Running kube-proxy 5 ea407a02f2f58 kube-proxy-bf4fl kube-system 57b1197b7d3bf 90550c43ad2bc 2 hours ago Running kube-apiserver 7 10bc958c1af0e kube-apiserver-k8s-master kube-system 87bfc2c40dfe8 5f1f5298c888d 2 hours ago Running etcd 5 113795754ac48 etcd-k8s-master kube-system

crictl images

IMAGE TAG IMAGE ID SIZE docker.io/calico/cni v3.30.3 034822460c2f6 71.9MB docker.io/calico/kube-controllers v3.30.3 df191a54fb79d 52.8MB docker.io/calico/node v3.30.3 ce9c4ac0f175f 157MB quay.io/metallb/controller v0.14.5 7f0c0a1b0dfdc 29.2MB quay.io/metallb/speaker v0.14.5 4e622d4011f55 52.8MB registry.aliyuncs.com/google_containers/coredns v1.12.1 52546a367cc9e 22.4MB registry.aliyuncs.com/google_containers/etcd 3.6.4-0 5f1f5298c888d 74.3MB registry.aliyuncs.com/google_containers/kube-apiserver v1.34.0 90550c43ad2bc 27.1MB registry.aliyuncs.com/google_containers/kube-controller-manager v1.34.0 a0af72f2ec6d6 22.8MB registry.aliyuncs.com/google_containers/kube-proxy v1.34.0 df0860106674d 26MB registry.aliyuncs.com/google_containers/kube-scheduler v1.34.0 46169d968e920 17.4MB registry.aliyuncs.com/google_containers/pause 3.10.1 cd073f4c5f6a8 320kB registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server v0.8.0 b9e1e3849e070 22.5MB

三、crictl 的使用和常见参数

用法如下:

crictl [全局选项] 命令 [命令选项] [参数...]

操作对象常用命令简要说明
容器create仅创建容器(不启动)
run在 sandbox 内创建并运行新容器
start启动已创建的容器
stop/rm停止 / 删除容器
ps列出当前容器(类似 docker ps)
logs实时拉取容器日志
exec在运行中容器内执行命令
attach附加到运行中容器的主进程
stats查看容器资源占用
update动态更新容器 cgroup 限制
checkpoint对运行中容器做 快照(需 CRI 支持)
镜像images(别名image/img列出本地镜像
pull从镜像仓库拉取镜像
rmi删除本地镜像
inspecti查看镜像详细信息
imagefsinfo返回镜像文件系统元数据
Podrunp新建并运行一个 Pod(sandbox)
stopp/rmp停止 / 删除 Pod
pods列出当前 Pod
inspectp查看 Pod 详细信息
metricsp获取 Pod 级别指标(key/value 形式)
statsp获取 Pod 统计摘要(用于 kubelet /stats/summary)
port-forward将本地端口转发到 Pod(调试用)
系统/配置version显示运行时版本
info显示 CRI 运行时整体信息
runtime-config查看当前运行时配置
update-runtime-config在线更新运行时配置
config管理 crictl 自身配置(get/set/list)
completion输出 bash 自动补全脚本
事件events(别名event实时流式输出容器事件
调试inspect查看容器底层状态(JSON 详情)

命令和参数基本和docker差不多,Pod的操作一般都是由kubectl完成,这里就不介绍了,

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询