K3S单节点集群Pod因存储卷节点亲和性冲突Pending求助
问题解决步骤
核心原因
你的本地PV配置的节点亲和性标签与K3S节点实际标签不匹配,导致Pod无法匹配到节点调度。K3S默认给节点打的主机名标签是kubernetes.io/hostname,而非你配置的name。
具体修复操作
- 验证节点标签
执行命令查看节点的实际标签:
kubectl get nodes --show-labels
确认你的节点homeserver的主机名标签为kubernetes.io/hostname=homeserver(这是K8s/K3S的默认行为)。
- 修改PV的节点亲和性配置
将PV配置中的nodeAffinity部分的key从name改为kubernetes.io/hostname,修改后的PV配置片段如下:
apiVersion: v1 kind: PersistentVolume metadata: name: vaultwarden-pv spec: local: path: /var/container-data/vaultwarden capacity: storage: 32Gi volumeMode: Filesystem persistentVolumeReclaimPolicy: Retain storageClassName: "" accessModes: - ReadWriteOnce nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - homeserver
- 重新应用PV配置
先删除原PV(因你的PV是Retain策略,删除后本地数据不会丢失):
kubectl delete pv vaultwarden-pv
再重新应用整个配置文件:
kubectl apply -f your-config-file.yaml
- 验证Pod状态
执行命令查看Pod是否成功调度:
kubectl get pods
内容的提问来源于stack exchange,提问作者Felix B.
相关产品推荐
相关产品推荐

