我在 GCP 中有 K8S 集群(定期更新通道的版本为 1.20.8-gke.900)。 所有集群 pod 都从 Docker 容器将日志写入 STDOUT 或 STDERR。
几周前,我们发现 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。
我在流畅的位日志中没有看到任何错误...
您能否建议如何跟踪/调试/排除此类情况?
谢谢!
问题似乎出在日志量上。 托管 GKE 日志记录代理保证至少 100KiB/s 的吞吐量,并且根据其他节点因素,性能可能会更高。
如果 GKE 节点上的工作负载生成的速度明显超过 100KiB/s,则可能由于日志量而未收集日志。
如果生成速度超过 100kb/s,则有一些解决方法:
造成 100kb/s 限制的根本原因是我们只给 Fluentbit 分配了少量资源,以便为您的工作负载留下更多可用资源。
请参阅链接了解更多信息。
由于 GKE 随着时间的推移而发生变化,现在有更多的选择。 GKE 有 3 个 Fluentbit 选项