K8s StatefulSet部署YAML报got "map", expected "array"如何解决
问题原因
Kubernetes StatefulSet的volumeClaimTemplates字段规范要求为PVC模板数组,你的当前配置存在3处不符合规范的问题:
- 字段类型错误:
volumeClaimTemplates后直接挂载PVC属性字典,未按数组格式包裹PVC模板项,和报错提示的got "map", expected "array"完全对应 - 资源标识字段错误:PVC配置误用
type字段定义资源类型,Kubernetes资源类型统一用kind字段声明 - 字段层级错误:
storageClassName、volumeMode属于PVC Spec的顶层配置项,错误写到了resources.requests子层级下
修复后的配置
volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {{.Values.features.persistence.name}} spec: accessModes: [ "ReadWriteOnce" ] storageClassName: {{.Values.features.persistence.storageClass}} volumeMode: Filesystem resources: requests: storage: {{.Values.features.persistence.size}} {{- end}}
内容的提问来源于stack exchange,提问作者Aro
相关产品推荐
相关产品推荐

