4. Loki 部署模式:单机模式、微服务模式与简单可扩展模式
Loki 提供三种官方部署模式,分别对应不同的规模、运维复杂度和可用性要求。在生产环境中,选择正确的部署模式是构建稳定、可观测日志平台的第一步。本章将详细拆解三种模式的核心架构、组件拓扑、适用场景以及容量规划要点。
4.1 三种部署模式总览
| 部署模式 | 组件形态 | 扩展性 | 高可用 | 运维复杂度 | 推荐场景 |
|---|---|---|---|---|---|
| 单机模式 (Single Binary) | 单一进程,所有功能集成 | 无(垂直扩展) | 无 | 极低 | 开发测试、小规模 PoC、个人环境 |
| 微服务模式 (Microservices) | 每个组件独立进程 | 水平扩展,组件级独立扩缩 | 完整(组件多副本) | 高 | 大规模生产、超大规模集群、多租户 |
| 简单可扩展模式 (Simple Scalable) | 三个目标:读、写、后端 | 水平扩展,按读写分离 | 中等(读写分别多副本) | 中 | 中小规模生产、从单机到集群的过渡 |
选型建议: 对于云原生日志平台变更门禁压测沙盘,推荐从 简单可扩展模式 起步。它既能模拟生产环境的读写分离架构,又不会引入微服务模式的全链路运维负担,适合在沙盘中验证容量预测模型。
4.2 单机模式 (Single Binary)
单机模式将所有 Loki 组件——Distributor、Ingester、Querier、Query Frontend、Compactor、Index Gateway 等——打包进同一个二进制文件,以单一进程运行。这是最简单的部署方式,适合快速上手和功能验证。
关键特征:
- 所有组件共享同一进程空间,通信开销最低。
- 依赖外部对象存储(或本地文件系统)作为长期存储后端。
- 不支持水平扩展,单点故障风险高。
- 典型启动命令:
loki --config.file=/etc/loki/loki.yaml
4.3 微服务模式 (Microservices)
微服务模式将每个 Loki 组件部署为独立的进程(或 Kubernetes Deployment),组件之间通过 gRPC 和 HTTP 通信。这是生产环境中最高可用的部署形态,每个组件都可以独立扩缩容、独立滚动更新。
运维挑战: 微服务模式虽然弹性最强,但组件数量多(通常 7-10 个独立 Deployment),需要配套的监控、日志、链路追踪体系。在压测沙盘中,如果直接使用微服务模式,会引入过多的运维噪音,干扰容量预测模型的基准测试。
4.4 简单可扩展模式 (Simple Scalable)
简单可扩展模式(SSD)是 Loki 团队推荐的“生产就绪”部署方式。它将组件逻辑上分为三个目标:读 (Read)、写 (Write) 和 后端 (Backend),每个目标可以独立水平扩展。SSD 模式在运维复杂度和扩展能力之间取得了最佳平衡。
4.5 三种模式对比与选型决策树
| 对比维度 | 单机模式 | 简单可扩展模式 | 微服务模式 |
|---|---|---|---|
| 部署组件数 | 1 个进程 | 3 个 Deployment | 7-10 个 Deployment |
| 水平扩展粒度 | 无 | 读写分别扩展 | 每个组件独立扩展 |
| 故障域 | 单点故障 | 读写隔离故障 | 组件级隔离 |
| 资源开销 | 低 (1-2 核 / 2-4 GB) | 中 (3-6 核 / 6-12 GB) | 高 (10+ 核 / 16+ GB) |
| 配置复杂度 | 单文件配置 | 三目标配置 + 共享存储 | 多组件独立配置 + 服务发现 |
| 压测沙盘适用性 | 仅功能验证 | 推荐:容量预测基准 | 大规模压测验证 |
压测沙盘选型建议:
- 阶段一(功能验证): 使用单机模式快速验证日志采集、查询、告警链路是否正常。
- 阶段二(容量预测基准): 切换为简单可扩展模式,模拟读写分离的真实生产拓扑,采集 Write/Read 目标的 CPU、内存、网络吞吐量作为容量预测模型的训练数据。
- 阶段三(极限压测): 在微服务模式下验证组件级瓶颈,例如 Ingester 的写入吞吐上限、Querier 的并发查询能力。
4.6 部署模式对容量预测的影响
在《Loki 支撑云原生日志平台变更门禁压测沙盘与容量预测》课程中,部署模式直接决定了容量预测模型的输入参数和预测粒度:
- 单机模式: 只能预测整体资源消耗,无法区分读写瓶颈。
- 简单可扩展模式: 可以分别建立 Write 和 Read 的容量模型,预测写入 QPS 增长对 Ingester CPU 的影响,以及查询并发对 Querier 内存的影响。
- 微服务模式: 支持组件级容量预测,例如 Compactor 的磁盘 I/O 与数据保留周期的关系、Index Gateway 的缓存命中率与查询延迟的关系。
容量预测最佳实践: 在压测沙盘中,始终以 简单可扩展模式 作为基准环境。当需要细化某个组件的容量模型时,再临时切换到微服务模式进行针对性压测。这样可以避免在沙盘初期就陷入微服务模式的运维复杂性,同时保证容量预测模型具备生产代表性。