【问题标题】:Cannot retrieve POD logs in go client while available from kubectl logs command从 kubectl logs 命令可用时,无法在 go 客户端中检索 POD 日志
【发布时间】:2018-01-25 14:43:52
【问题描述】:

在我们的 Kubernetes 中,有一个不断重启的 POD。

如果我使用kubectl logs -p POD_NAME -n NAMESPACE 命令,我会得到详细的日志。然而,当我们使用 Kubernetes 的 go 客户端并尝试检索日志时,我们什么也得不到。

我们正在使用 PodExpansion 接口的 GetLogs(name string, opts *v1.PodLogOptions) 方法。

我还尝试在 PodLogOptions 中使用各种选项,例如。 sinceSeconds=BeginningOfTheYear 但没有运气。

非常感谢任何帮助。

【问题讨论】:

  • 请分享更多代码你如何使用GetLogs函数以及你如何处理错误。
  • 我们找到了原因。我们这边的源代码有一些错误。我们正在检查 POD 是否没有运行,只是返回。但在这种情况下,POD 处于等待状态,因为它无法启动。

标签: go deployment kubernetes kubernetes-go-client


【解决方案1】:

我们找到了原因。我们这边的源代码有一些错误。我们正在检查 POD 是否没有运行,只是返回。但在这种情况下,POD 处于等待状态,因为它无法启动。

我们不得不添加这部分代码来避免从 POD 收集的日志被阻塞。

【讨论】:

    【解决方案2】:

    这个问题太笼统了,没有太多信息,所以我猜是这个答案。 Pod 的反复重启是由于 Pod 故障造成的。 Kubernetes 会在失败时重新启动 Pod,直到 Pod 正常工作,不幸的是,在这种情况下它没有工作。

    这可能由于各种原因而发生。有些可能是由于资源问题、环境变量连接松散等。我总是将鼠标悬停在日志上以查找此类问题,并检查kubectl describe pods <pod_name> 命令,并注意最后几行。它们显示了当前正在执行的操作以及失败的原因。这可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-12-22
      • 1970-01-01
      • 2019-03-04
      • 2021-12-29
      • 1970-01-01
      • 2020-05-30
      • 2019-01-20
      • 2021-08-28
      • 1970-01-01
      相关资源
      最近更新 更多