菜单

部署模式

作为一个应用程序,Loki是由许多组件微服务构建而成的,并被设计为作为一个水平可扩展的分布式系统运行。Loki的独特设计将整个分布式系统的代码编译成一个二进制或Docker映像。控件控制该二进制文件的行为—target命令行标志,并定义三种操作模式之一。

二进制文件的每个部署实例的配置进一步指定它运行哪些组件。

Loki设计用于根据需求变化在不同模式下轻松地重新部署集群,无需配置更改或配置更改最少。

单片模式

操作集的最简单模式—target =所有.这是默认目标,不需要指定。这是单片模式;它在一个进程中运行Loki的所有微服务组件,作为一个二进制文件或Docker映像。

整体模式图

单片模式对于快速开始使用Loki非常有用,也适用于每天大约100GB的小读/写量。

通过使用共享对象存储和配置对象存储,将单片模式部署横向扩展到更多实例memberlist_config部分在所有实例之间共享状态。

高可用性可以通过运行两个Loki实例来配置memberlist_config配置和共享对象存储。

以循环方式将流量路由到所有Loki实例。

查询并行化受限于实例的数量和已定义的查询并行化。

简单的可伸缩部署模式

如果您的日志量每天超过几百GB,或者您希望分离读写问题,Loki提供了简单的可伸缩部署模式。这种部署模式可以扩展到每天几tb甚至更多的日志。考虑大型Loki安装的微服务模式方法。

简单的可伸缩部署模式图

在这种模式下,Loki的组件微服务被捆绑成两个目标:—target =读而且—target =写.的BoltDB压实机服务将作为读目标的一部分运行。

分离读和写路径有以下优点:

  • 通过提供专用节点,提高了写路径的可用性
  • 单独可伸缩的读路径,按需添加/删除查询性能

简单的可伸缩部署模式需要在Loki前面安装一个负载均衡器洛基/ api / v1 /推动到写节点的流量。所有其他请求都转到读节点。流量应该以循环方式发送。

Loki的简单可扩展部署可以扩展到每天几tb甚至更多的日志。

Microservices模式

微服务部署模式将Loki组件实例化为不同的进程。调用每个流程时指定其目标

  • 摄取
  • 经销商
  • query-frontend
  • query-scheduler
  • 查询器
  • index-gateway
  • 统治者
  • 压实机

微服务模式图

将组件作为单独的微服务运行,可以通过增加微服务的数量进行扩展。定制的集群对各个组件有更好的可观察性。微服务模式部署是最有效的Loki安装。然而,它们的设置和维护也是最复杂的。

微服务模式推荐用于非常大的Loki集群或需要对扩展和集群操作进行更多控制的集群。

微服务模式最适合Kubernetes部署。有Jsonnet和分布式Helm图安装。