当前位置: 首页 > news >正文

K8S中storageClass

从 NFS Provisioner (nfs-client-provisioner) 的日志来看,问题的核心是:

关键错误

E0806 14:01:35.881674 1 controller.go:1004] provision "default/test-claim" class "managed-nfs-storage": 
unexpected error getting claim reference: selfLink was empty, can't make reference

问题原因

  1. Kubernetes API 废弃了 **selfLink** 字段(v1.20+),但 NFS Provisioner 仍然依赖它。
  2. Provisioner 无法正确引用 PVC,导致动态 PV 创建失败。

解决方案

方法 1:启用 Legacy **selfLink**(临时方案)

kube-apiserver 配置中启用 selfLink(不推荐长期使用):

# 修改 /etc/kubernetes/manifests/kube-apiserver.yaml
spec:containers:- command:- kube-apiserver- --feature-gates=RemoveSelfLink=false  # 添加这一行

然后重启 kube-apiserver:

systemctl restart kubelet

⚠️ 警告selfLink 已在 Kubernetes v1.24 完全移除,此方法可能在将来失效。


方法 2:升级/替换 NFS Provisioner

方案 1:使用更新的 NFS Provisioner

推荐使用 NFS Subdir External Provisioner(社区维护的活跃项目):

helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \--set nfs.server=<NFS_SERVER_IP> \--set nfs.path=/your/nfs/share \--set storageClass.name=managed-nfs-storage

方案 2:改用 CSI Driver

如果集群版本较新(v1.20+),建议迁移到 NFS CSI Driver

helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs \--set nfs.server=<NFS_SERVER_IP> \--set nfs.mountPath=/your/nfs/share

方法 3:手动创建 PV/PVC(临时绕过)

如果急需使用,可以手动创建 PV 并绑定 PVC:

# manual-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: test-pv-manual
spec:storageClassName: managed-nfs-storagecapacity:storage: 10GiaccessModes:- ReadWriteManynfs:server: <NFS_SERVER_IP>path: /your/nfs/share
kubectl apply -f manual-pv.yaml

验证步骤

  1. 检查 PV 是否创建
kubectl get pv
  1. 确认 PVC 已绑定
kubectl get pvc test-claim
    • STATUS 应为 **Bound**
  1. 重新部署 Pod
kubectl delete pod <your-pod> && kubectl apply -f pod.yaml

根本解决建议

方案 适用场景 备注
启用 **selfLink** 临时测试环境 不推荐生产使用
升级到 NFS Subdir Provisioner 兼容旧版 Kubernetes 社区维护,支持新 API
迁移到 NFS CSI Driver 新集群(v1.20+) 官方推荐方案
手动创建 PV 紧急恢复 需维护 PV 生命周期

推荐顺序

CSI Driver > NFS Subdir Provisioner > 手动 PV > 启用 **selfLink**


附加排查

如果问题仍未解决,请提供:

  1. NFS 服务器状态:
showmount -e <NFS_SERVER_IP>
  1. StorageClass 详细配置:
kubectl get sc managed-nfs-storage -o yaml
  1. PVC 的完整 YAML:
kubectl get pvc test-claim -o yaml

我会根据这些信息进一步分析! 🛠️

http://www.gsyq.cn/news/181782.html

相关文章:

  • 在Arm架构的ubuntu中,使用qt qmediaplayer播放视频报错Warning: “No decoder available for type ‘video/mpeg...
  • Anaconda prompt启动慢:Miniconda-Python3.9无GUI更快响应
  • Markdown PlantUML类图生成:Miniconda-Python3.9绘制架构图
  • Miniconda-Python3.9 + PyTorch:最适合论文复现的技术组合
  • Pyenv versions查看已安装:Miniconda-Python3.9列出可用版本
  • python基于Vue的远程就医专家挂号预约系统 _4b2uo_django Flask pycharm项目
  • 2025-2026年这家环境监测与水质分析设备厂家实力“出圈” - 品牌推荐大师1
  • PyTorch安装分布式RPC:Miniconda-Python3.9支持跨节点通信
  • 2026最新实验台、通风柜、实验室装修、实验室规划设计厂家推荐:迅领实验室引领行业新标准 - 深度智识库
  • 2026游泳馆等美团自助核销接口教程,赶紧收藏起来
  • 衣物隐喻下的生命缝合:目前最先进的哲学理论《升命学说》,论“唯悟”作为世界的针线
  • 使用MATLAB的k-Wave工具箱进行超声CT成像
  • 游泳馆支持美团核销接口,小程序一键接入
  • 使用Miniconda管理多个PyTorch版本的正确姿势
  • 将Jupyter Notebook嵌入Miniconda-Python3.9环境的最佳实践
  • MBA必看!9个降AI率工具高效避坑指南
  • Docker Load加载镜像:Miniconda-Python3.9导入本地tar文件
  • CUDA零拷贝内存Zero-Copy:Miniconda-Python3.9减少数据传输延迟
  • Docker Volumes数据持久化:Miniconda-Python3.9保存模型权重
  • Anaconda下载缓慢解决办法:Miniconda-Python3.9提供精简安装包
  • 全域深耕效能决胜——2026年GEO优化服务商甄选指南 - 品牌推荐排行榜
  • PyTorch安装后import报错?Miniconda-Python3.9预检LD_LIBRARY_PATH
  • 渗透测试|某单位从敏感三要素泄露到接管管理员的漏洞挖掘之旅,黑客技术零基础入门到精通实战教程!
  • GitHub Discussions社区互动:Miniconda-Python3.9建立用户交流区
  • 如何选择汽车制造数字化服务商?关键指标与实战案例解析
  • 2026优质花岗岩四爪磨头品牌解析与推荐,故障率低、寿命长的花岗岩磨头选择指南 - 工业企业赋能社
  • 深耕打火机赛道,引领产业新升级——2025打火机生产线行业剖析及优质厂家推荐 - 品牌推荐大师1
  • CUDA安装检测脚本分享:Miniconda-Python3.9自带nvidia-smi集成
  • 成都交流直流充电桩生产厂家哪家口碑好?求直销厂家推荐 - 朴素的承诺
  • 通过AWS Transfer Family集成Active Directory实现安全SFTP文件访问