kubernetes - 即使在指定 VolumeClaimTemplate 之后,kube-prometheus-stack 仍将 EmptyDir 用作存储

标签 kubernetes kubernetes-helm prometheus-operator

我正在尝试使用 helm 安装 kube-prometheus-stack 并尝试将持久卷与 hospath 一起使用,即使在指定 VolumeClaimTemplate 之后创建的 emptyDir 也是存储类型。

这些是我遵循的步骤:

  1. 创建了一个 PV
kind: PersistentVolume
metadata:
  name: prometheus-pv
  labels:
    app: prometheus
spec:
  capacity:
    storage: 50Gi
  hostPath:
    path: /data/prometheus/pv4
    type: ''
  accessModes:
    - ReadWriteOnce
  1. 修改存储部分的默认值文件:
    resources: {}
    # requests:
    #   memory: 400Mi

    ## Prometheus StorageSpec for persistent data
    ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md
    ##
    storageSpec:
    ## Using PersistentVolumeClaim
    ##
    volumeClaimTemplate:
      spec:
        storageClassName: ""
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 50Gi
      selector:
          matchLabels:
            app: prometheus
  1. 使用 helm 安装 kube-prometheus-stack
helm install  --values Prometheus.yaml promethes  prometheus-community/kube-prometheus-stack --namespace prometheusstack
  1. 部署成功,但存储创建为 emptyDir pod 存储片段
spec:
  volumes:
    - name: config
      secret:
        secretName: prometheus-promethes-kube-prometheus-prometheus
        defaultMode: 420
    - name: tls-assets
      secret:
        secretName: prometheus-promethes-kube-prometheus-prometheus-tls-assets
        defaultMode: 420
    - name: config-out
      emptyDir: {}
    - name: prometheus-promethes-kube-prometheus-prometheus-rulefiles-0
      configMap:
        name: prometheus-promethes-kube-prometheus-prometheus-rulefiles-0
        defaultMode: 420
    - name: prometheus-promethes-kube-prometheus-prometheus-db
      emptyDir: {}
    - name: promethes-kube-prometheus-prometheus-token-nwwxv
      secret:
        secretName: promethes-kube-prometheus-prometheus-token-nwwxv
        defaultMode: 420

最佳答案

您缺少身份证明。 正确的值应该是:

    storageSpec:
      ## Using PersistentVolumeClaim
      ##
      volumeClaimTemplate:
        spec:
          storageClassName: ""
          accessModes: ["ReadWriteOnce"]
          resources:
            requests:
              storage: 50Gi
        selector:
          matchLabels:
            app: prometheus

关于kubernetes - 即使在指定 VolumeClaimTemplate 之后,kube-prometheus-stack 仍将 EmptyDir 用作存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65267112/

相关文章:

jenkins - 如何在 jenkins 管道脚本中使用 helm 命令

arrays - Concourse CI - 数组变量

kubernetes - 连接Redis导出器和Prometheus运算符

kubernetes - Prometheus 的 http_request 自定义指标在 Kubernetes 中不起作用

jenkins - 如何使用Prometheus运算符取消Jenkins指标

kubernetes - 如何使用导出网络策略允许访问 kubernetes api?

kubernetes - 如何设置 Kubernetes nodeport 服务超时?

amazon-web-services - 如何添加规则以允许AWS EKS上的nodePort在某些端口范围上的流量?

kubernetes - 我可以为每个用户/公司拥有一个 K8s pod吗?

kubernetes - 如何处理 "Helm Upgrade Timeout"错误?