Helm 未删除图表 kube-prometheus-stack 中的资源

问题描述 投票:0回答:2

我已使用以下简单命令在我的 EKS 集群上安装了 kube-prometheus-stack:

helm install prometheus-stack prometheus-community/kube-prometheus-stack -f values.yaml --namespace test

一切都很顺利。

values.yaml 文件非常简单:

alertmanager:

  enabled: true

  config:
    inhibit_rules:  # fire only once the Watchdog to test the chat
      - source_matchers:
          - 'alertname = Watchdog'
        target_matchers:
          - 'alertname = Watchdog'
    route:
      group_by: ['namespace']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: 'telegram_receiver'
      routes:

    receivers:
    - name: 'telegram_receiver'
      telegram_configs:
      - api_url: 'https://api.telegram.org'
        bot_token: 'my-token'
        chat_id: -00000000
    templates:
    - '/etc/alertmanager/config/*.tmpl'
  
  alertmanagerSpec:
    logFormat: logfmt
    logLevel: info
    replicas: 1

grafana:
  enabled: true

  defaultDashboardsEnabled: true
  defaultDashboardsTimezone: utc
  
  grafana.ini:
    auth.anonymous:
      enabled: true
      org_id: 1
      org_role: Viewer
  
  # Add dashboard
  dashboardProviders:
    dashboardproviders.yaml:
      apiVersion: 1
      providers:
      - name: 'default'
        orgId: 1
        folder: 'default'
        type: file
        disableDeletion: true
        editable: true
        options:
          path: /var/lib/grafana/dashboards/default
  dashboards:
    default:
      my-dashboard:
        json: |
          {// stuff inside omitted since is huge}

kubeStateMetrics:
  enabled: true

nodeExporter:
  enabled: true

prometheusOperator:
  enabled: true

prometheus:
  enabled: true

检查一切似乎都正常后,我尝试使用以下命令卸载它:

helm uninstall prometheus-stack --namespace test

并且很少有东西从我的集群中删除(我实际上做了一些更改,尝试重新安装它并发现了很多垃圾)。基本上这就是卸载后继续运行的内容(

kubectl get all -n test
):

NAME                                                         READY   STATUS      RESTARTS   AGE
pod/alertmanager-prometheus-stack-kube-prom-alertmanager-0   2/2     Running     0          48m
pod/prometheus-prometheus-stack-kube-prom-prometheus-0       2/2     Running     0          48m
pod/prometheus-stack-grafana-9c9f66cf6-zf22j                 3/3     Running     0          48m
pod/prometheus-stack-kube-prom-admission-create-r64vx        0/1     Completed   0          48m
pod/prometheus-stack-kube-prom-admission-patch-t92zh         0/1     Completed   0          47m
pod/prometheus-stack-kube-prom-operator-845d754c86-ksxjv     1/1     Running     0          48m
pod/prometheus-stack-kube-state-metrics-6b79dfc54d-8mvjv     1/1     Running     0          48m
pod/prometheus-stack-prometheus-node-exporter-89kmz          1/1     Running     0          48m
pod/prometheus-stack-prometheus-node-exporter-x29dw          1/1     Running     0          48m
pod/prometheus-stack-prometheus-node-exporter-zdvbv          1/1     Running     0          48m

NAME                            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                      AGE
service/alertmanager-operated   ClusterIP   None         <none>        9093/TCP,9094/TCP,9094/UDP   48m
service/prometheus-operated     ClusterIP   None         <none>        9090/TCP                     48m

NAME                                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/prometheus-stack-grafana-9c9f66cf6               1         1         1       48m
replicaset.apps/prometheus-stack-kube-prom-operator-845d754c86   1         1         1       48m
replicaset.apps/prometheus-stack-kube-state-metrics-6b79dfc54d   1         1         1       48m

NAME                                                                    READY   AGE
statefulset.apps/alertmanager-prometheus-stack-kube-prom-alertmanager   1/1     48m
statefulset.apps/prometheus-prometheus-stack-kube-prom-prometheus       1/1     48m

有没有办法解决这个问题,以便我可以卸载它而不留下痕迹?与 helm 图表本身有关吗?是 helm 问题还是我的配置有问题?

我没有使用任何持久卷,也没有从 helm 收到任何警告/错误。

此外,作为一个额外但相关的事情(如果你碰巧知道为什么),我注意到,如果我从警报管理器中的

values.yaml
中删除空的
route:
,则根本不会创建警报管理器,并且头盔也不会给出来自 cli 的任何错误...这对我来说似乎非常危险。

kubernetes kubernetes-helm amazon-eks prometheus-operator
2个回答
0
投票

据我了解,helm 不会清理它在

install
过程中创建的所有内容。它确实删除了部署、服务、秘密和配置映射,但留下了副本集和 Pod 等对象。因此它只会清理模板 yaml 中明确描述的对象。

如果我在幕后理解正确的话,helm 库使用 Kubernetes 客户端与 Kubernetes API 进行通信。 kubectl 目前无法删除 RS 到 Deployment 以及 pod 到 RS 的子对象。


0
投票

Helm 卸载通常不会删除服务帐户、角色、角色绑定、apiservices 等资源。您可以尝试在 helm 卸载后手动删除它们。还可以通过将标签与 helm 版本名称匹配来删除资源。您会发现这些标签附加到由 helm install 命令创建的所有资源上。

但你的情况似乎不同的状态集,pod和服务应该像往常一样被删除。确保您的 helm uninstall 命令成功执行,没有任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.