K8s crictl 客户端学习

crictl客户端工具学习

  • [一、 crictl 介绍](#一、 crictl 介绍)
  • [二、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 返回镜像文件系统元数据
Pod runp 新建并运行一个 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完成,这里就不介绍了,

相关推荐
AI_零食1 小时前
鸿蒙跨端框架Flutter学习day 2、常用UI组件-弹性布局进阶之道
学习·flutter·ui·华为·harmonyos·鸿蒙
Coovally AI模型快速验证1 小时前
从“单例模仿”到“多面融合”,视觉上下文学习迈向“团队协作”式提示融合
人工智能·学习·算法·yolo·计算机视觉·人机交互
JMchen1231 小时前
Android Activity管理工具类
android·java·学习·移动开发·android-studio
ghgxm5201 小时前
Fastapi_00_学习策略与学习计划
python·学习·前端框架·npm·fastapi
hkNaruto2 小时前
【AI】AI学习笔记:翻译:langGraph 持久化执行 以及文档部分理解
笔记·学习·microsoft
pixcarp2 小时前
Golang web工作原理详解
开发语言·后端·学习·http·golang·web
青衫码上行2 小时前
SpringBoot多环境配置
java·spring boot·后端·学习
敲敲了个代码2 小时前
前端指纹技术是如何实现的?(Canvas、Audio、硬件API 核心原理解密)
前端·javascript·学习·算法·面试·web
KubeSphere 云原生2 小时前
云原生周刊:Kubernetes 1.35 新机制与云原生生态更新
云原生·容器·kubernetes