记录: 向AKS中部署 grafana-k8s-monitoring

通过在 Grafana cloud 页面 Infrastructure – Kubernetes – Configuration 下配置 grafana 采集配置并获取安装命令

configuration on grafana cloud

下面是我获取到的部署命令

helm repo add grafana https://grafana.github.io/helm-charts &&
  helm repo update &&
  helm upgrade --install --atomic --timeout 300s grafana-k8s-monitoring grafana/k8s-monitoring \
    --namespace "monitoring" --create-namespace --values - <<EOF
cluster:
  name: my-cluster-001
externalServices:
  loki:
    host: https://logs-prod-eu-west-0.grafana.net
    basicAuth:
      username: "195213"
      password: replacetherealtokenstringoverhere
  tempo:
    host: https://tempo-eu-west-0.grafana.net:443
    basicAuth:
      username: "191726"
      password: replacetherealtokenstringoverhere
metrics:
  enabled: false
  alloy:
    metricsTuning:
      useIntegrationAllowList: false
  cost:
    enabled: false
  kepler:
    enabled: false
  node-exporter:
    enabled: false
logs:
  enabled: true
  pod_logs:
    enabled: true
  cluster_events:
    enabled: false
traces:
  enabled: true
receivers:
  grpc:
    enabled: true
  http:
    enabled: true
  zipkin:
    enabled: true
  grafanaCloudMetrics:
    enabled: true
opencost:
  enabled: false
  podAnnotations:
    kubernetes.azure.com/set-kube-service-host-fqdn: "true"
kube-state-metrics:
  enabled: false
  podAnnotations:
    kubernetes.azure.com/set-kube-service-host-fqdn: "true"
prometheus-node-exporter:
  enabled: false
prometheus-operator-crds:
  enabled: false
kepler:
  enabled: false
alloy:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
alloy-events:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
alloy-logs:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
beyla:
  enabled: true
EOF

但是如果直接使用这个命令去部署,在我当前这个版本会得到报错(可能后面会得到grafana团队修复吧)

"grafana" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ingress-nginx" chart repository
...Successfully got an update from the "metersphere" chart repository
...Successfully got an update from the "jetstack" chart repository
...Successfully got an update from the "hashicorp" chart repository
...Successfully got an update from the "grafana" chart repository
...Successfully got an update from the "prometheus-community" chart repository
...Successfully got an update from the "bitnami" chart repository
Update Complete. ⎈Happy Helming!⎈
Release "grafana-k8s-monitoring" does not exist. Installing it now.
Error: execution error at (k8s-monitoring/charts/beyla/templates/daemon-set.yaml:24:28): if .Values.config.name is not set, then .Values.config.create should be set to true to use default configuration

为此,我也向官方仓库提交了 [issue](https://github.com/grafana/k8s-monitoring-helm/issues/750) ,但未得到回复和帮助,无奈只能自行通过源码解决

git clone https://github.com/grafana/k8s-monitoring-helm.git

直接在拉取下来的 main分支下测试
helm install --debug --dry-run grafana-k8s-monitoring charts/k8s-monitoring \
    --namespace "monitoring" --create-namespace --values - <<EOF
cluster:
  name: my-cluster-001
externalServices:
  loki:
    host: https://logs-prod-eu-west-0.grafana.net
    basicAuth:
      username: "195213"
      password: replacetherealtokenstringoverhere=
  tempo:
    host: https://tempo-eu-west-0.grafana.net:443
    basicAuth:
      username: "191726"
      password: replacetherealtokenstringoverhere=
metrics:
  enabled: false
  alloy:
    metricsTuning:
      useIntegrationAllowList: false
  cost:
    enabled: false
  kepler:
    enabled: false
  node-exporter:
    enabled: false
logs:
  enabled: true
  pod_logs:
    enabled: true
  cluster_events:
    enabled: false
traces:
  enabled: true
receivers:
  grpc:
    enabled: true
  http:
    enabled: true
  zipkin:
    enabled: true
  grafanaCloudMetrics:
    enabled: true
opencost:
  enabled: false
  podAnnotations:
    kubernetes.azure.com/set-kube-service-host-fqdn: "true"
kube-state-metrics:
  enabled: false
  podAnnotations:
    kubernetes.azure.com/set-kube-service-host-fqdn: "true"
prometheus-node-exporter:
  enabled: false
prometheus-operator-crds:
  enabled: false
kepler:
  enabled: false
alloy:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
alloy-events:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
alloy-logs:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
beyla:
  enabled: true
EOF

会发现同样报错,通过查看源码,发现这个仓库用了 subchart, 错误日志是由 subchart 中的一个判断抛出

helm resource code

但是 subchart 内的配置(values.yaml)是正确的,直接对subchart dry run流程正常,不会报错

cd charts/k8s-monitoring/charts/beyla   
helm install --debug --dry-run --namespace "monitoring" --create-namespace beyla .

于是得到问题原因还是出在上一层

最终发现父级 chart里的 beyla.config.create 默认是 false, 需要手动设置为 true(而grafana自动生成的命令中缺失了此处的定义)

beyla helm config

于是在上面的命令中再加上 beyla.config.create = true 的配置

...
...
...
beyla:
  enabled: true
  config:
    create: true
EOF

再次运行 dry run 发现一切正常了,但是当把 helm 命令改为真实部署时,会被原子性报错(创建了两个同名的 configmap )

  1. k8s-monitoring/templates/beyla-config.yaml 创建一个
  2. k8s-monitoring/charts/beyla/templates/configmap.yaml 创建一个

这肯定是不对的,要去除 subchart 内的configmap, 重新配置 Beyla

...
...
...
beyla:
  enabled: true
  config:
    name: null
    create: true
EOF

再次尝试部署后一切正常

下面附上完整的基于源码的部署命令

# helm install --debug --dry-run grafana-k8s-monitoring charts/k8s-monitoring \
helm upgrade --install --atomic --timeout 300s grafana-k8s-monitoring charts/k8s-monitoring \
    --namespace "monitoring" --create-namespace --values - <<EOF
cluster:
  name: my-cluster-001
externalServices:
  loki:
    host: https://logs-prod-eu-west-0.grafana.net
    basicAuth:
      username: "195213"
      password: replacetherealtokenstringoverhere=
  tempo:
    host: https://tempo-eu-west-0.grafana.net:443
    basicAuth:
      username: "191726"
      password: replacetherealtokenstringoverhere=
metrics:
  enabled: false
  alloy:
    metricsTuning:
      useIntegrationAllowList: false
  cost:
    enabled: false
  kepler:
    enabled: false
  node-exporter:
    enabled: false
logs:
  enabled: true
  pod_logs:
    enabled: true
  cluster_events:
    enabled: false
traces:
  enabled: true
receivers:
  grpc:
    enabled: true
  http:
    enabled: true
  zipkin:
    enabled: true
  grafanaCloudMetrics:
    enabled: true
opencost:
  enabled: false
  podAnnotations:
    kubernetes.azure.com/set-kube-service-host-fqdn: "true"
kube-state-metrics:
  enabled: false
  podAnnotations:
    kubernetes.azure.com/set-kube-service-host-fqdn: "true"
prometheus-node-exporter:
  enabled: false
prometheus-operator-crds:
  enabled: false
kepler:
  enabled: false
alloy:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
alloy-events:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
alloy-logs:
  controller:
    podAnnotations:
      kubernetes.azure.com/set-kube-service-host-fqdn: "true"
beyla:
  enabled: true
  config:
    name: null
    create: true
EOF

收工!

客官慢走,有空常来啊😄
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇