crictl调试Kubernetes节点
本文介绍了TKE中使用containerd模式的集群常用的crictl命令
开始之前
crictl需要一个具有CRI运行时的Linux操作系统,直接在TKE中创建containerd模式的集群既可。
安装crictl
你可以从critools发布页面下载一个压缩的存档crictl,用于几种不同的体系构架。下载与Kubernetes版本对应的版本。解压并将其移动到系统路径上的一个位置,例如/usr/local/bin/。
一般用法
crictl命令有几个子命令和运行时选项。有关详细信息,请使用crictl help或crictl help。
crictl默认连接到 unix:///var/run/dockershim.sock。对于其它运行时,你可以通过多种方式设置端点:
设置 --runtime-endpoint 和--image-endpoint选项。
设置 CONTAINER_RUNTIME_ENDPOINT 和IMAGE_SERVICE_ENDPOINT环境变量。
在配置文件 --config=/etc/crictl.yaml设置端点。
还可以在连接到服务器时指定超时值,并启用或禁用调试,方法是在配置文件中指定 timeout 和debug 值,或者使用--timeout和--debug命令行选项。 要查看或编辑当前配置,请查看或编辑/etc/crictl.yaml的内容
cat /etc/crictl.yamlruntime-endpoint: unix:///var/run/dockershim.sockimage-endpoint: unix:///var/run/dockershim.socktimeout: 10debug: truecrictl命令示例
下面的示例显示了crictl命令和示例输出。
警告:如果你使用crictl在运行的Kubernetes集群上创建pod沙箱或容器,Kubelet最终将删除它们。crictl不是一个通用的工作流工具,而是一个对调试有用的工具。
获取pod列表
获取所有pod列表:
根据名称获取pod列表:
获取镜像列表
获取所有镜像列表:
根据仓库获取镜像列表:
只列出镜像ID:
获取容器列表
获取所有容器列表:
在运行的容器中执行命令
输出容器日志
获取所有容器日志:
只获取最近的N行日志:
运行pod沙箱
使用crictl运行pod沙箱对于调试容器运行时非常有用。在运行的Kubernetes集群上,沙箱最终将被Kubelet停止和删除。
创建一个如下内容的JSON文件:
使用crictl runp命令应用JSON并运行沙箱。
返回了沙箱ID。
创建容器
使用crictl创建容器对于调试容器运行时非常有用。在运行的Kubernetes集群上,沙箱最终将被Kubelet停止和删除。
拉取沙箱镜像:
为pod和容器创建配置:
pod配置:
传递前面创建的pod、容器配置文件和pod配置文件的ID来创建容器。随即返回了容器的ID。
列出所有容器,并验证新创建的容器是否将其状态设置为Created。
启动容器
要启动容器,请将其ID传递给 crictl start:
检查容器是否将其状态设置为Running。
最后更新于
这有帮助吗?