4.8. 故障排除和调试操作
4.8.1. debug
启动一个 shell 以调试正在运行的应用程序。
$ oc debug -h
调试镜像并设置问题时,您可以获取正在运行的 pod 配置的确切副本,并使用 shell 进行故障排除。因为一个失败的 pod 可能无法启动且无法被 rsh
或 exec
访问,运行 debug
命令会创建那个设置的 carbon 副本。
默认模式是在引用的 pod、复制控制器或部署配置的第一个容器内启动 shell。启动的 pod 将是源 pod 的副本,其标签会剥离,命令的变为 /bin/sh
,并且禁用就绪度和存活度检查。如果您只想运行命令,请添加 --
和要运行的命令。默认情况下,传递命令将不会创建 TTY 或发送 STDIN。其他标记支持以常见方式更改容器或 pod。
运行容器的常见问题是一个安全策略,它会阻止您在集群中以 root 用户身份运行。您可以使用此命令测试以非 root 运行 pod(使用 --as-user
)或以 root 身份运行非 root pod(使用 --as-root
)。
当远程命令完成或中断 shell 时,调试 pod 将被删除。
4.8.1.1. 用法
$ oc debug RESOURCE/NAME [ENV1=VAL1 ...] [-c CONTAINER] [options] [-- COMMAND]
4.8.1.2. 示例
调试当前运行的部署:
$ oc debug dc/test
要测试以非 root 用户身份运行部署:
$ oc debug dc/test --as-user=1000000
要在 第二个
容器中运行 env
命令来调试特定的故障容器:
$ oc debug dc/test -c second -- /bin/env
查看创建要调试的 pod:
$ oc debug dc/test -o yaml