首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在EBS和NFS之间选择Helm持久卷类型?

在EBS和NFS之间选择Helm持久卷类型?
EN

Stack Overflow用户
提问于 2019-02-18 19:10:23
回答 1查看 758关注 0票数 0

我需要帮助我的普罗米修斯头盔图表中的"if“语句。我正在尝试实现的是在EBS或NFS中具有持久卷的普罗米修斯图表。它适用于EBS,但不适用于NFS。我认为问题出在我的if语句逻辑上。

当我设置storageClass:"nfs“values.yaml时,我得到了错误:

代码语言:javascript
复制
Error: release prometheus failed: PersistentVolume "prometheus-alertmanager" is invalid: spec: Required value: must specify a volume type

在我的values.yaml文件中有:

代码语言:javascript
复制
  persistentVolume:
    enabled: true
    accessModes:
      - ReadWriteOnce
    annotations: {}
    existingClaim: ""
    mountPath: /data
    subPath: "alertmanager/"
    size: 4Gi
    ReclaimPolicy: "Recycle"
    storageClass: "aws"
    volumeID: "vol-xxx"
    fs_mounts:
      path: /data/alertmanager
      server: 127.0.0.1

Prometheus服务器的不同之处在于subPath和fs_mounts下的路径。

在我的alertmanager-pv中,我有:

代码语言:javascript
复制
{{- if not .Values.alertmanager.statefulSet.enabled -}}
{{- if and .Values.alertmanager.enabled .Values.alertmanager.persistentVolume.enabled -}}
apiVersion: v1
kind: PersistentVolume
metadata:
  name: prometheus-alertmanager
spec:
  capacity:
    storage: {{ .Values.alertmanager.persistentVolume.size }}
  accessModes:
{{ toYaml .Values.alertmanager.persistentVolume.accessModes | indent 4 }}
  persistentVolumeReclaimPolicy: "{{ .Values.alertmanager.persistentVolume.ReclaimPolicy }}"
{{- if (eq "aws" .Values.alertmanager.persistentVolume.storageClass) }}
  storageClassName: "gp2"
  awsElasticBlockStore:
    fsType: "ext4"
    volumeID: {{ .Values.alertmanager.persistentVolume.volumeID }}
{{- if (eq "nfs" .Values.alertmanager.persistentVolume.storageClass) }}
  StorageClassName: "nfs"
    mountOptions:
      - hard
      - nfsvers=4.1
      - timeo=600
      - retrans=2
    nfs:
      server: {{ .Values.alertmanager.persistentVolume.fs_mounts.server }}
      path: {{ .Values.alertmanager.persistentVolume.fs_mounts.path }}
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}

在alertmanager-pvc中:

代码语言:javascript
复制
{{- if not .Values.alertmanager.statefulSet.enabled -}}
{{- if and .Values.alertmanager.enabled .Values.alertmanager.persistentVolume.enabled -}}
{{- if not .Values.alertmanager.persistentVolume.existingClaim -}}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
  name: prometheus-alertmanager
spec:
  accessModes:
{{ toYaml .Values.alertmanager.persistentVolume.accessModes | indent 4 }}
{{- if (eq "aws" .Values.alertmanager.persistentVolume.storageClass) }}
  storageClassName: "gp2"
  resources:
    requests:
      storage: {{ .Values.alertmanager.persistentVolume.size }}
{{- if (eq "nfs" .Values.alertmanager.persistentVolume.storageClass) }}
  storageClassName: "nfs"
  resources:
    requests:
      storage: {{ .Values.alertmanager.persistentVolume.size }}
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}
{{- end -}}
EN

回答 1

Stack Overflow用户

发布于 2019-02-19 00:08:16

问题出在nfs if语句中的错误标识。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54745940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档