crictl 命令 - Kubernetes 管理命令详解
描述:crictl 是 CRI 兼容的容器运行时命令行对接客户端, 你可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序。由于该命令是为k8s通过CRI使用containerd而开发的(主要是调试工具), 其他非k8s的创建的 crictl 是无法看到和调试的, 简单的说用 ctr run 运行的容器无法使用 crictl 看到。
Tips: crictl 命令工具 和 它的源代码在 cri-tools 代码库。
Tips: crictl 默认使用命名空间 k8s.io.
Tips: cri plugin区别对待pod和container
基础配置
描述: 在 k8s 1.19.x 之前 crictl 默认连接到 unix:///var/run/dockershim.sock
,而在1.20.x起默认采用 /run/containerd/containerd.sock
运行时,当然除此之外还是支持cri-o运行时。
# crictl by default connects on Unix to:
unix:///var/run/dockershim.sock or
unix:///run/containerd/containerd.sock or
unix:///run/crio/crio.sock
# or on Windows to:
npipe:////./pipe/dockershim or
npipe:////./pipe/containerd or
npipe:////./pipe/crio
# For other runtimes, use:
frakti: unix:///var/run/frakti.sock
查看或编辑 /etc/crictl.yaml
的内容并设置指定的容器运行时runtime。
$ cat /etc/crictl.yaml
runtime-endpoint: /run/containerd/containerd.sock
image-endpoint: "/run/containerd/containerd.sock"
timeout: 0
debug: false
pull-image-on-create: false
Tips: 除了上面的设置端点外,我们还可以利用其它方式进行临时设置或者指定配置文件。
# 1.通过在配置文件中设置端点并通过 --config 参数指定配置文件
crictl --config=/etc/crictl-demo.yaml
# 2.通过设置参数 --runtime-endpoint 和 --image-endpoint
crictl --runtime-endpoint="/run/containerd/containerd.sock" --image-endpoint="/run/containerd/containerd.sock"