为什么人们
我制作了yaml文件来部署我的应用程序,现在我使用helm来自动部署它。尽管我所有的conf文件dor kubernetes都可以工作。我对头盔和PVC
有疑问。
我已经检查了互联网,但我找不到我的错误在哪里:(
pvc-helm.yaml
{{- if .Values.persistence.enabled }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ .Values.persistence.name }}
namespace: {{ .Values.persistence.namespace }}
spec:
accessModes:
- {{ .Values.persistence.accessModes | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- end }}
values.yaml
persistence:
enabled: true
name: ds-pvc
namespace: ds-svc
storageClassName: standard
storageClass: standard
accessModes:
- ReadWriteOnce
size: 20Mi
运行命令helm install cas/ --tls
时出现以下错误
错误:发布brawny-olm失败:PersistentVolumeClaim“ ds-pvc”为 无效:[spec.accessModes:必需值:至少一种访问模式是 必需,spec.resources [存储]:必需值]
我还必须设置PersistentVolume
吗?
答案 0 :(得分:1)
掌舵图中有两个问题:
1。。spec
级别不应低于metadata
级别。它与metadata
没有关系,因此spec
与metadata
处于同一级别。
2。。值persistence.accessModes
应该定义为字符串,而不是列表。
正确的文件是:
pvc-helm.yaml
{{- if .Values.persistence.enabled }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ .Values.persistence.name }}
namespace: {{ .Values.persistence.namespace }}
spec:
accessModes:
- {{ .Values.persistence.accessModes | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- end }}
values.yaml
persistence:
enabled: true
name: ds-pvc
namespace: default
storageClassName: standard
storageClass: standard
accessModes: ReadWriteOnce
size: 20Mi
答案 1 :(得分:0)
如果要使用可选值,则应检查是否已定义
spec:
{{- if .Values.persistence.accessModes }}
accessModes:
- {{ .Values.persistence.accessModes | quote }}
{{- end }}
另一个选项是在values.yaml
文件上定义默认值