【问题标题】:GKE Fluent bit partial logsGKE Fluent 位部分日志
【发布时间】:2021-08-04 14:11:30
【问题描述】:

我在 GCP 中有 K8S 集群(版本是 1.20.8-gke.900 来自定期更新频道)。 所有集群 pod 从 Docker 容器中将日志写入 STDOUT 或 STDERR。

几周前,我们发现 GCP 日志记录控制台中缺少一些日志条目。我可以通过 kubectl 工具看到它们,但看起来它们没有到达日志存储桶。例如,我可以使用无效负载在 pod 中使用 API 来模拟日志中的错误,有时这个错误会到达日志存储桶,有时不会。对我来说超级奇怪......

集群中的流量和资源利用率超小。

据我了解,fluent bit daemonset 负责从 pod 中获取日志并将它们传递到日志存储桶中。 fluent bit 的当前版本:gke.gcr.io/fluent-bit:v1.5.7-gke.1 & gke.gcr.io/fluent-bit-gke-exporter:v0。 16.2-gke.0.

我在流畅的位日志中没有看到任何错误...

您能否建议如何跟踪/调试/排除此类情况?

谢谢!

【问题讨论】:

    标签: google-cloud-platform google-kubernetes-engine fluent-bit


    【解决方案1】:

    看来问题出在日志卷上。 managed GKE logging 代理保证至少 100KiB/s 的吞吐量,并且性能可以更高,具体取决于其他节点因素。

    如果您在 GKE 节点上的工作负载生成的速度明显超过 100KiB/s,则可能是由于日志量大而未收集日志。

    如果您生成的速度超过 100kb/s,则有一些解决方法:

    1. 生成更少的日志。
    2. 让相关节点部分空闲。这将允许 fluentbit 获取额外的 CPU 周期并处理更多日志。
    3. 以更高的资源分配运行您自己的 fluentbit 实例。

    100kb/s 限制的根本原因是我们只为 fluentbit 分配少量资源,以便为您的工作负载留出更多可用资源。

    请参阅link 了解更多信息。

    【讨论】:

    猜你喜欢
    • 2020-06-17
    • 2018-07-27
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2020-04-03
    • 2020-11-08
    相关资源
    最近更新 更多