GKE Fluent 位部分日志

问题描述 投票:0回答:2

我在 GCP 中有 K8S 集群(定期更新通道的版本为 1.20.8-gke.900)。 所有集群 pod 都从 Docker 容器将日志写入 STDOUTSTDERR

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

集群内流量和资源占用超小

据我了解,fluid 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
2个回答
1
投票

问题似乎出在日志量上。 托管 GKE 日志记录代理保证至少 100KiB/s 的吞吐量,并且根据其他节点因素,性能可能会更高。

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

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

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

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

请参阅链接了解更多信息。


0
投票

由于 GKE 随着时间的推移而发生变化,现在有更多的选择。 GKE 有 3 个 Fluentbit 选项

© www.soinside.com 2019 - 2024. All rights reserved.