1. 课程导论:多集群日志平台的挑战与 Fluent Bit 的核心价值

在云原生架构快速普及的今天,企业往往同时管理多个 Kubernetes 集群——生产集群、预发集群、边缘集群、跨区域灾备集群。日志作为可观测性的三大支柱之一,其采集、传输与存储的稳定性直接决定了故障定位效率和平台运维成本。然而,多集群日志平台的建设并非简单的“单集群方案 × N”,而是面临着一系列独特的架构挑战。

1.1 多集群日志采集的核心挑战

当我们将日志采集范围从单个集群扩展到多个集群时,以下四个问题会迅速浮出水面:

挑战维度 具体表现 典型后果
网络拓扑复杂 集群间网络隔离、跨 VPC/IDC 延迟、NAT 网关带宽瓶颈 日志传输延迟高、丢包率上升、连接频繁中断
元数据碎片化 各集群命名空间、Pod 标签、节点名称不统一 日志检索时无法关联同一业务在不同集群的上下文
资源竞争与噪声 采集 Agent 占用宿主 CPU/内存,与业务 Pod 争抢资源 业务性能抖动、日志采集延迟、OOM 风险增加
配置管理分散 每个集群独立维护采集规则、过滤条件、输出目标 配置漂移、版本混乱、变更审计困难
⚠️ 常见误区:很多团队试图用“中心化 Agent”统一采集所有集群的日志,结果导致中心集群的网络出口被打满,单点故障反而放大了故障域。多集群日志平台的设计原则应当是“边缘采集、中心汇聚、分层治理”。

1.2 为什么选择 Fluent Bit?

在众多日志采集工具中,Fluent Bit 凭借其轻量、高性能、插件生态丰富的特点,成为 Kubernetes 社区和 CNCF 生态中日志采集的事实标准。下表对比了主流采集器在多集群场景下的关键差异:

特性 Fluent Bit Filebeat Logstash Vector
内存占用(稳态) ~10 MB ~30 MB ~200 MB ~15 MB
CPU 使用率(10K 行/秒) 5-8% 8-12% 25-40% 6-10%
原生 Kubernetes 元数据 ✅ 内置 kubernetes 过滤器 ✅ 内置 add_kubernetes_metadata ❌ 需额外插件 ✅ 内置 kubernetes 源
多输出并行 ✅ 原生支持 ✅ 支持 ✅ 支持 ✅ 支持
跨集群传输协议 TCP/UDP/TLS/HTTP Elasticsearch/Logstash 多种 gRPC/HTTP
配置热加载 ✅ 支持 Reload ✅ 支持 ❌ 需重启 ✅ 支持

Fluent Bit 的核心价值可以概括为三个关键词:轻量(适合边缘集群资源受限场景)、可编程(通过 Lua/Filter 实现自定义元数据注入)、高吞吐(基于事件驱动架构,单核可处理数万行/秒)。

1.3 跨集群采集的架构模式

本课程将围绕以下三种主流跨集群采集模式展开,每种模式都有其适用场景和性能调优要点:

  1. 直连推送模式:每个集群的 Fluent Bit 直接向中心存储(如 Elasticsearch、Kafka)推送日志。适合集群数量少、网络稳定的场景。
  2. 聚合转发模式:边缘集群 Fluent Bit 将日志转发到中心集群的 Fluent Bit 聚合层,再由聚合层统一写入存储。适合跨区域、网络延迟高的场景。
  3. 消息队列缓冲模式:所有集群先写入 Kafka/RabbitMQ,再由消费端统一处理。适合流量峰值明显、需要削峰填谷的场景。
💡 课程重点:本课程不会停留在“如何配置”的层面,而是深入讲解每种模式下的内存管理、背压控制、连接池调优、元数据路由策略,以及如何通过 Fluent Bit 的 storage.backlog、tail.parser、kubernetes 过滤器等核心机制实现生产级稳定性。

1.4 多集群日志平台架构总览

下图展示了本课程所定义的多集群日志平台参考架构,清晰呈现了从边缘集群到中心存储的完整数据流:

多集群日志平台参考架构 多集群日志平台参考架构 集群 A(生产) Fluent Bit DaemonSet Pod 日志 / 容器 stdout K8s 元数据注入 集群 B(预发) Fluent Bit DaemonSet Pod 日志 / 容器 stdout K8s 元数据注入 集群 C(边缘) Fluent Bit DaemonSet Pod 日志 / 容器 stdout K8s 元数据注入 Fluent Bit 聚合转发层 背压控制 / 连接池 / 元数据路由 / 重试队列 中心存储(Elasticsearch / Kafka / S3) 索引优化 / 生命周期管理 / 冷热分层 跨集群 网络隔离

上图清晰地展示了本课程的核心架构思路:每个集群内部署独立的 Fluent Bit DaemonSet 进行边缘采集,通过聚合转发层统一处理跨集群的元数据标准化、背压控制和重试逻辑,最终写入中心存储。这种架构既避免了单点瓶颈,又保留了每个集群的自治能力。

1.5 课程学习路径

本课程共 30 章,分为四个阶段递进式学习:

阶段 章节范围 核心目标
基础篇 第 1-8 章 掌握 Fluent Bit 核心配置、Kubernetes 元数据采集、多集群网络规划
进阶篇 第 9-16 章 深入内存管理、背压控制、连接池调优、TLS 安全传输
实战篇 第 17-24 章 跨集群聚合转发、消息队列缓冲、多租户隔离、监控告警
调优篇 第 25-30 章 性能基准测试、故障演练、容量规划、生产级最佳实践
📌 学习建议:如果你是 Fluent Bit 新手,建议从基础篇开始,先搭建单集群采集环境,再逐步扩展到多集群。如果你已有 Fluent Bit 使用经验,可以直接从进阶篇入手,重点关注背压控制和聚合转发章节。