kubenetes: pod has unbound PersistentVolumeClaims

背景
使用helm chart 部署rabbitmq的时候 pod报错 pod has unbound PersistentVolumeClaims
原因分析
查看了 rabbitmq的 charts文件,发现value.yaml 中的storageClassName 取数为空,当storageClassName为空的时候如果没有指定 DefaultStorageClass ,那么是不会分配 pv给 claim的。
模版文件中storageclass 获取数的逻辑
在这里插入图片描述
说明一下DefaultStorageClass
PVC和PV的绑定是通过StorageClassName进行的。然而如果定义PVC时没有指定StorageClassName呢?这取决与admission插件是否开启了DefaultDefaultStorageClass功能:

如果DefaultDefaultStorageClass功能开启,那么此PVC的StorageClassName就会被指定为DefaultStorageClass。DefaultStorageClass从何处而来呢?原来在定义StorageClass时,可以在Annotation中添加一个键值对:storageclass.kubernetes.io/is-default-class: true,那么此StorageClass就变成默认的StorageClass了。
如果DefaultDefaultStorageClass功能没有开启,那么没有指定StorageClassName的PVC只能被绑定到同样没有指定StorageClassName的PV。
查看了我们环境中的storageclass 定义,发现没有开启DefaultDefaultStorageClass功能
在这里插入图片描述
解决办法:
处理办法有两种 1. 重新定义storageclass ,添加storageclass.kubernetes.io/is-default-class: true
2. 修改chart 文件中的pvc 取值, 让storageClass=现有的storageclass name
在这里插入图片描述
结果
过一会儿再次查看pod状态 ,已经running
在这里插入图片描述
欢迎加入云原生测试开发群,一起探讨学习
二维码过期可加我微信入群 chenpf4618,备注csdn入群
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值