在 Kubernetes 上配置 Grafana Alloy
本页介绍如何在 Kubernetes 上使用 Helm chart 运行时为 Alloy 应用新配置。假定您已满足以下条件:
- 您已使用 Helm chart 在 Kubernetes 上安装了 Alloy。
- 您已拥有一个 Alloy 配置,并希望将其应用于通过 Helm chart 进行的安装。
有关如何配置 Alloy 收集和转发数据的信息,请参阅收集和转发数据。
配置 Helm chart
要修改 Alloy 的 Helm chart 配置,请执行以下步骤:
创建一个包含 Helm chart 配置的本地
values.yaml
文件。您可以使用自己的 values 文件副本,或下载默认的
values.yaml
文件副本。修改您的
values.yaml
文件,以自定义 Helm chart 设置。有关每个选项的更多信息,请参阅默认的
values.yaml
文件中的内嵌文档。
在终端中运行以下命令以升级您的 Alloy 安装
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
示例片段
configMapGenerator:
- name: alloy
files:
- config.alloy
options:
disableNameSuffixHash: true
配置 Alloy
本节介绍如何修改存储在 Kubernetes 集群 ConfigMap 中的 Alloy 配置。有两种方法可以执行此任务。
方法 1:修改 values.yaml 文件中的配置
如果您倾向于将 Alloy 配置嵌入到 Helm chart 的 values.yaml
文件中,请使用此方法。
直接在
values.yaml
文件中修改配置文件内容alloy: configMap: content: |- // Write your Alloy config here: logging { level = "info" format = "logfmt" }
在终端中运行以下命令以升级您的 Alloy 安装
helm upgrade --namespace <NAMESPACE> <RELEASE_NAME> grafana/alloy -f <VALUES_PATH>
替换以下内容
<NAMESPACE>
: 您用于 Alloy 安装的命名空间。<RELEASE_NAME>
: 您用于 Alloy 安装的发布名称。<VALUES_PATH>
: 您使用的values.yaml
文件副本的路径。
方法 2:从文件创建单独的 ConfigMap
如果您倾向于将 Alloy 配置写入单独的文件中,请使用此方法。
将您的配置写入文件中,例如,
config.alloy
。// Write your Alloy config here: logging { level = "info" format = "logfmt" }
从上述文件创建一个名为
alloy-config
的 ConfigMapkubectl create configmap --namespace <NAMESPACE> alloy-config "--from-file=config.alloy=./config.alloy"
替换以下内容
<NAMESPACE>
: 您用于 Alloy 安装的命名空间。
修改您的
values.yaml
文件中的 Helm Chart 配置以使用现有的 ConfigMapalloy: configMap: create: false name: alloy-config key: config.alloy
在终端中运行以下命令以升级您的 Alloy 安装
helm upgrade --namespace <NAMESPACE> <RELEASE_NAME> grafana/alloy -f <VALUES_PATH>
替换以下内容
<NAMESPACE>
: 您用于 Alloy 安装的命名空间。<RELEASE_NAME>
: 您用于 Alloy 安装的发布名称。<VALUES_PATH>
: 您使用的values.yaml
文件副本的路径。