菜单
开源

在 Kubernetes 上配置 Grafana Alloy

本页介绍如何在 Kubernetes 上使用 Helm chart 运行时为 Alloy 应用新配置。假定您已满足以下条件:

有关如何配置 Alloy 收集和转发数据的信息,请参阅收集和转发数据

配置 Helm chart

要修改 Alloy 的 Helm chart 配置,请执行以下步骤:

  1. 创建一个包含 Helm chart 配置的本地 values.yaml 文件。

    1. 您可以使用自己的 values 文件副本,或下载默认的 values.yaml 文件副本。

    2. 修改您的 values.yaml 文件,以自定义 Helm chart 设置。

      有关每个选项的更多信息,请参阅默认的 values.yaml 文件中的内嵌文档。

  2. 在终端中运行以下命令以升级您的 Alloy 安装

    shell
    helm upgrade --namespace <NAMESPACE> <RELEASE_NAME> grafana/alloy -f <VALUES_PATH>

    替换以下内容

    • <NAMESPACE>: 您用于 Alloy 安装的命名空间。
    • <RELEASE_NAME>: 您用于 Alloy 安装的发布名称。
    • <VALUES_PATH>: 您使用的 values.yaml 文件副本的路径。

Kustomize 注意事项

如果您正在使用 Kustomize 扩展并安装 Helm chart,请注意使用 configMapGenerator 生成包含配置的 ConfigMap。默认情况下,生成器会在名称后附加哈希值,并修补引用该名称的资源,从而触发滚动更新。

这种行为对于 Alloy 而言是不期望的,因为启动时间可能会很长,例如,当您的部署拥有大型指标预写日志 (Write-Ahead Log) 时。您可以使用 Helm chart sidecar 容器来监视 ConfigMap 并触发动态重新加载。

以下是一个禁用此行为的 kustomization 示例片段

yaml
configMapGenerator:
  - name: alloy
    files:
      - config.alloy
    options:
      disableNameSuffixHash: true

配置 Alloy

本节介绍如何修改存储在 Kubernetes 集群 ConfigMap 中的 Alloy 配置。有两种方法可以执行此任务。

方法 1:修改 values.yaml 文件中的配置

如果您倾向于将 Alloy 配置嵌入到 Helm chart 的 values.yaml 文件中,请使用此方法。

  1. 直接在 values.yaml 文件中修改配置文件内容

    yaml
    alloy:
      configMap:
        content: |-
          // Write your Alloy config here:
          logging {
            level = "info"
            format = "logfmt"
          }
  2. 在终端中运行以下命令以升级您的 Alloy 安装

    shell
    helm upgrade --namespace <NAMESPACE> <RELEASE_NAME> grafana/alloy -f <VALUES_PATH>

    替换以下内容

    • <NAMESPACE>: 您用于 Alloy 安装的命名空间。
    • <RELEASE_NAME>: 您用于 Alloy 安装的发布名称。
    • <VALUES_PATH>: 您使用的 values.yaml 文件副本的路径。

方法 2:从文件创建单独的 ConfigMap

如果您倾向于将 Alloy 配置写入单独的文件中,请使用此方法。

  1. 将您的配置写入文件中,例如,config.alloy

    alloy
    // Write your Alloy config here:
    logging {
      level = "info"
      format = "logfmt"
    }
  2. 从上述文件创建一个名为 alloy-config 的 ConfigMap

    shell
    kubectl create configmap --namespace <NAMESPACE> alloy-config "--from-file=config.alloy=./config.alloy"

    替换以下内容

    • <NAMESPACE>: 您用于 Alloy 安装的命名空间。
  3. 修改您的 values.yaml 文件中的 Helm Chart 配置以使用现有的 ConfigMap

    yaml
    alloy:
      configMap:
        create: false
        name: alloy-config
        key: config.alloy
  4. 在终端中运行以下命令以升级您的 Alloy 安装

    shell
    helm upgrade --namespace <NAMESPACE> <RELEASE_NAME> grafana/alloy -f <VALUES_PATH>

    替换以下内容

    • <NAMESPACE>: 您用于 Alloy 安装的命名空间。
    • <RELEASE_NAME>: 您用于 Alloy 安装的发布名称。
    • <VALUES_PATH>: 您使用的 values.yaml 文件副本的路径。