【FAQ】1.20以上版本StorageClass创建PV报错

【错误】

正常创建storageclass,但是创建PVC一直Pending,查看PV没有被创建

[root@crust-m02 ~]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
test-claim1 Pending nfs-client 1 0m

【分析】

  • 查看storageclass的日志
[root@crust-m02 ~]# kubectl logs -n storageclass storageclass-nfs-client-provisioner-96d4f67c5-svqf9
  • 输入如下
E0708 09:54:04.267529 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
I0708 10:05:26.529992 1 controller.go:987] provision "default/test-claim1" class "nfs-client": started
E0708 10:05:26.533022 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
I0708 10:20:26.530290 1 controller.go:987] provision "default/test-claim1" class "nfs-client": started
E0708 10:20:26.535305 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
I0708 10:35:26.530458 1 controller.go:987] provision "default/test-claim1" class "nfs-client": started
E0708 10:35:26.533075 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
I0708 10:50:26.530627 1 controller.go:987] provision "default/test-claim1" class "nfs-client": started
E0708 10:50:26.535387 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
I0708 11:05:26.530833 1 controller.go:987] provision "default/test-claim1" class "nfs-client": started
E0708 11:05:26.537123 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
I0708 11:20:26.530968 1 controller.go:987] provision "default/test-claim1" class "nfs-client": started
E0708 11:20:26.534794 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
I0708 11:35:26.531254 1 controller.go:987] provision "default/test-claim1" class "nfs-client": started
E0708 11:35:26.536277 1 controller.go:1004] provision "default/test-claim1" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference

可见错误:selfLink was empty, can't make reference
查了一下资料,发现是 1.20版本之后 禁用了 selfLink

【解决】

  • 启用 selfLink
    在每个master节点上修改kube-apiserver的yml文件 :/etc/kubernetes/manifests/kube-apiserver.yaml
    添加- --feature-gates=RemoveSelfLink=false这一行,如下所示:
spec:
containers:
- command:
- kube-apiserver
- --feature-gates=RemoveSelfLink=false #添加这一行
- --advertise-address=10.10.239.201
- --allow-privileged=true

因为这是静态pod,修改完成后会自动更新(了解静态pod可以参见我的文档《k8s-静态pod》

  • 查看修改结果

如下可见,三个apiserver都更新了:

[root@crust-m01 ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
……
kube-apiserver-crust-m01 1/1 Running 0 6m
kube-apiserver-crust-m02 1/1 Running 0 9m
kube-apiserver-crust-m03 1/1 Running 0 60s
……
  • 测试
    删除storageclass的pod,新pod自启动后可以正常使用storageclass创建pv了
[root@crust-m01 ~]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
test-claim1 Bound pvc-36bab495-1b32-4dbb-8daf-bd3d48c0c2cb 1Mi RWX nfs-client 43m
[root@crust-m01 ~]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-36bab495-1b32-4dbb-8daf-bd3d48c0c2cb 1Mi RWX Delete Bound default/test-claim1 nfs-client 43m

在这里插入图片描述

posted on   运维开发玄德公  阅读(41)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示