配置Persistent Volume的Node Affinity时遇报错,请求协助
问题解决:PV配置Node Affinity时出现未知字段错误
问题原因
你遇到的strict decoding error: unknown field "spec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution"错误,是因为Persistent Volume(PV)的NodeAffinity字段结构和Pod的不一致。你误用了Pod的NodeAffinity字段名(requiredDuringSchedulingIgnoredDuringExecution),但PV的API定义中对应的字段是简化的required。
修正后的PV配置
将PV的nodeAffinity部分修改为以下结构:
apiVersion: v1 kind: PersistentVolume metadata: name: blue-pv-cka spec: capacity: storage: 100Mi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: blue-stc-cka local: path: /opt/blue-data-cka nodeAffinity: required: # 替换原来的requiredDuringSchedulingIgnoredDuringExecution nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists
补充说明
K8s API中,PV的nodeAffinity遵循PersistentVolumeNodeAffinity类型定义,仅包含required和preferred两个顶级字段;而Pod的nodeAffinity属于NodeAffinity类型,使用requiredDuringSchedulingIgnoredDuringExecution和preferredDuringSchedulingIgnoredDuringExecution这两个长字段名,这是两者的核心差异。
内容的提问来源于stack exchange,提问作者Anindya Kar
相关产品推荐
相关产品推荐

