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