如何用 Helm 在 Kubernetes 上安装 Prometheus 和 Grafana?

用 kube-prometheus-stack 一条 Helm 命令即可在 K8s 上装齐 Prometheus + Grafana + Alertmanager + 常用 K8s 指标采集组件(不自动覆盖全部应用指标、日志或链路)。本文给出添加仓库、安装、自定义 values、访问 Grafana 的完整步骤。

最佳实践
如何用 Helm 在 Kubernetes 上安装 Prometheus 和 Grafana?封面

社区标准做法是安装 kube-prometheus-stack 这个全家桶 Chart:Prometheus、Grafana、Alertmanager、node-exporter、kube-state-metrics 一次到位,还自带几十张 K8s 监控看板与告警规则。

安装步骤

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

# 先按兼容性选定确切Chart版本,并设置 CHART_VERSION
helm install monitoring prometheus-community/kube-prometheus-stack --version "$CHART_VERSION" \
  -n monitoring --create-namespace

访问 Grafana

# 取初始密码(用户 admin)
kubectl get secret -n monitoring monitoring-grafana -o jsonpath="{.data.admin-password}" | base64 -d

# 端口转发访问
kubectl port-forward -n monitoring svc/monitoring-grafana 3000:80

生产环境建议配 Ingress + HTTPS,并修改默认密码。

常用 values 定制

# values.yaml
prometheus:
  prometheusSpec:
    retention: 15d
    storageSpec:
      volumeClaimTemplate:
        spec:
          accessModes: ["ReadWriteOnce"]
          resources: {requests: {storage: 50Gi}}
grafana:
  # 通过已有 Secret 与对应 Chart 的 admin.existingSecret 配置管理密码
  persistence: {enabled: true, size: 5Gi}
alertmanager:
  config:
    route: {receiver: 'discard'}
    receivers:
      - name: discard  # 示例不发送通知,生产需替换为已配置并测试的接收器

首次安装时将 -f values.yaml 加到上述完整命令;已安装实例用同一 release、namespace 和已选版本执行 helm upgrade。存储类一定要先配——PVC 需要可用默认 StorageClass 或显式 storageClassName;示例未配置 Alertmanager 持久化。未启用持久化的组件可能在 Pod 重建后丢失本地数据。macOS 的 base64 解码参数通常为 -D,需按本机实现调整。

常见问题(FAQ)

Q:和 prometheus + grafana 两个独立 Chart 比哪个好? 全家桶默认配置经过打磨、组件版本兼容,新手与生产都推荐。

Q:升级 Chart 会丢配置吗? 保留 values 不保证升级安全;应核对 Chart/组件兼容性、CRD 迁移、废弃字段及 PVC/备份策略,按 release notes 在测试环境验证。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台