You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K3s集群PersistentVolume删除后重建失败问题求助

解决K3s集群中PersistentVolume删除后重建失败的问题

问题场景

基于Multipass搭建的K3s集群,删除PersistentVolume后重建时遇到以下问题:

  • 执行删除命令后系统提示已删除,但重建时出现警告,无法完成创建:
    kubectl delete -f persistentVolume.yaml
    persistentvolume "postgres-pv" deleted
    
    kubectl apply -f persistentVolume.yaml 
    Warning: Detected changes to resource postgres-pv which is currently being deleted.
    
  • 配置文件里指定的hostPath路径/pendrive/datakuber为空,同时YAML存在缩进错误。

解决步骤

1. 检查PV的删除状态

先确认PV是否还卡在删除流程中,执行:

kubectl get pv postgres-pv

如果输出中状态为Terminating,说明删除操作未彻底完成,大概率是存在绑定的PersistentVolumeClaim未删除,或者K8s垃圾回收机制仍在处理。

2. 强制清理残留的PV

若PV一直卡在Terminating状态,直接强制清除:

kubectl patch pv postgres-pv -p '{"metadata":{"finalizers":null}}'

再次执行kubectl get pv postgres-pv,确认PV已彻底消失。

3. 修正YAML配置的缩进错误

你的配置中labels缩进层级错误,应与name同级,修正后的完整配置如下:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: postgres-pv
  labels:
    app: postgres
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /pendrive/datakuber

4. 确保hostPath路径存在且有权限

登录到Multipass虚拟机,创建目标路径并设置正确权限:

# 进入Multipass虚拟机,替换为你的虚拟机名称
multipass shell <your-vm-name>
# 创建指定路径
sudo mkdir -p /pendrive/datakuber
# 设置权限,让K3s容器可访问(1000为常见非特权用户UID,可按需调整)
sudo chown -R 1000:1000 /pendrive/datakuber

5. 重新创建PV

完成上述步骤后,执行重建命令:

kubectl apply -f persistentVolume.yaml

内容的提问来源于stack exchange,提问作者Raul Cejas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:22:19