菜单
开源 RSS

安装简单可扩展的 Helm chart

您可以使用 Grafana Cloud 来避免自行安装、维护和扩展 Grafana Loki 实例。创建免费账户即可开始使用,其中包括永久免费访问 1 万指标、50GB 日志、50GB 追踪、500 VUh k6 测试等功能。

此 Helm Chart 将 Grafana Loki 部署到 Kubernetes 集群中,采用简单可扩展模式

此 chart 配置 Loki 在可扩展模式下运行 readwritebackend 目标。Loki 的简单可扩展部署模式将执行路径分离为 read、write 和 backend 目标。

默认 Helm chart 部署以下组件

  • Read 组件 (3 个副本)
  • Write 组件 (3 个副本)
  • Backend 组件 (3 个副本)
  • Loki Canary (1 个 DaemonSet)
  • Gateway (1 个 NGINX 副本)
  • Minio (可选,如果 minio.enabled=true)
  • 索引和 Chunk 缓存 (1 个副本)

注意

我们不推荐使用 filesystem 存储运行可扩展模式。为了本指南的目的,我们将使用 MinIO 作为对象存储来提供一个完整示例。

先决条件

  • Helm 3 或更高版本。请参阅安装 Helm
  • 一个正在运行的 Kubernetes 集群(必须至少有 3 个节点)。

为开发和测试部署 Helm chart

以下步骤展示如何使用附带的 MinIO 作为存储后端,以简单可扩展模式部署 Loki Helm chart。我们建议从这里开始进行开发和测试。然后在迁移到生产环境时,使用对象存储提供商配置 Loki。

  1. Grafana 的 chart 仓库添加到 Helm

    bash
    helm repo add grafana https://grafana.github.io/helm-charts
  2. 更新 chart 仓库

    bash
    helm repo update
  3. 创建配置文件 values.yaml。以下示例展示如何使用 MinIO 作为存储,以测试模式部署 Loki

    yaml
      loki:
        schemaConfig:
          configs:
            - from: "2024-04-01"
              store: tsdb
              object_store: s3
              schema: v13
              index:
                prefix: loki_index_
                period: 24h
        ingester:
          chunk_encoding: snappy
        querier:
          # Default is 4, if you have enough memory and CPU you can increase, reduce if OOMing
          max_concurrent: 4
        pattern_ingester:
          enabled: true
        limits_config:
          allow_structured_metadata: true
          volume_enabled: true
    
      deploymentMode: SimpleScalable
    
      backend:
        replicas: 2
      read:
        replicas: 2
      write:
        replicas: 3 # To ensure data durability with replication
    
      # Enable minio for storage
      minio:
        enabled: true
    
      gateway:
        service:
          type: LoadBalancer
  4. 安装或升级 Loki 部署。

    • 安装
      bash
      helm install --values values.yaml loki grafana/loki
    • 升级
      bash
      helm upgrade --values values.yaml loki grafana/loki

对象存储配置

在测试 Loki 与 MinIO 集成后,我们建议使用对象存储提供商来配置 Loki。以下示例展示了如何使用不同的对象存储提供商来配置 Loki

注意

当使用 S3 存储部署 Loki 时,请勿使用默认 bucket 名称;chunkruleradmin。为每个 bucket 选择一个唯一的名称。更多信息请参阅以下安全更新。当您使用 MinIO 时,此注意事项不适用。使用 MinIO 时,我们建议使用默认 bucket 名称。

要配置其他存储提供商,请参阅Helm Chart 参考

后续步骤