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完成,这里就不介绍了,

相关推荐
lichenyang45339 分钟前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang45343 分钟前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4531 小时前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
运维开发故事3 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
探索云原生5 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
Java之美6 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程