为了账号安全,请及时绑定邮箱和手机立即绑定

如何将openshift中的POD日志获取到本地文件

如何将openshift中的POD日志获取到本地文件

莫回无 2023-09-20 16:08:33
我的 Spring Boot 应用程序作为使用 docker Image 构建的容器在 Openshift 上运行。我已在应用程序中启用日志记录并打印所有日志。现在我想检查 POD 的日志文件以检查是否有任何错误,因为我的请求失败了。我确实知道命令行选项oc logs -f <podname> ,它只是将日志打印到cmd提示符中,但我希望将整个日志从服务器复制到本地文件。这样我就可以找到一些特定的行或错误。有可能吗?
查看完整描述

6 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

您可以使用rsync命令将文件复制到 pod 中或从 pod 中复制出来。

或者像您一样使用logs命令,然后重定向到一个文件,以便您可以在本地编辑它:

oc logs  <podname> &> /path/to/file


查看完整回答
反对 回复 2023-09-20
?
MM们

TA贡献1886条经验 获得超2个赞

OC同步

按照上面的建议尝试oc rsync

oc rsync <pod>:/path/to/file localfilename

但就我而言,我得到了:

WARNING: cannot use rsync: rsync not available in container <pod>

奥卡普

所以我尝试了 try oc cp,它成功了:

oc cp <namespace>/<pod>:/path/to/file local_filename

如果不指定命名空间,复制命令将无法工作(并且不显示错误消息),因此我必须知道 pod 属于哪个项目。

识别 pod 的项目/命名空间

  • <pod>是 Pod 名称

  • <namespace>实际上是所属的项目<pod>

  • 用于oc project列出当前项目,或

  • oc projects列出所有项目

  • 或者或者在所有项目中搜索pod名称oc get pods --all-namespaces | egrep <pod>

重要的提示

# !!!Important Note!!!
 # Requires that the 'tar' binary is present in your container
 # image.  If 'tar' is not present, 'kubectl cp' will fail.
 # about my environment
 # oc version
 # oc 3.6, openshift 3.7, kubernetes 1.7


查看完整回答
反对 回复 2023-09-20
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

从您的 oc CLI 工具执行:

oc logs pod_name -n project_name > filename.log


查看完整回答
反对 回复 2023-09-20
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

这只是将日志打印到cmd提示符中,但我希望将整个日志从服务器复制到本地文件。这样我就可以找到一些特定的行或错误。有可能吗?

/var/log/containers检查节点上哪些 Pod 正在运行怎么样?所有容器日志都是符号链接<pod name>_<namespace>_<container name>-<hash>格式。基本上,oc logs也指那里相同的容器日志。

例如>

node ~# ls -1 /var/log/containers
alertmanager-main-0_openshift-monitoring_alertmanager-123...789.log
alertmanager-main-0_openshift-monitoring_alertmanager-456...123.log
alertmanager-main-0_openshift-monitoring_alertmanager-proxy-789...456.log
...


查看完整回答
反对 回复 2023-09-20
?
翻阅古今

TA贡献1780条经验 获得超5个赞

从oc cli工具登录,然后切换到项目,执行:

oc logs <podname> >> <podname>.log


查看完整回答
反对 回复 2023-09-20
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

对我来说,它的工作方式是将包含我打算从 pod 获取的日志的文件夹复制到您登录 pod 时 pod 发送给您的默认路径,然后应用:

oc cp <namespace>/<pod>:<myFolder> .


查看完整回答
反对 回复 2023-09-20
  • 6 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信