Helm部署MongoDB报错:无法构建Kubernetes对象,求解决方案
解决MongoDB Helm Chart安装报错PodDisruptionBudget版本不兼容问题
问题原因:你的Kubernetes集群版本≥1.21,该版本已移除对policy/v1beta1 API版本的PodDisruptionBudget支持,而你使用的MongoDB Helm Chart版本过旧,仍在使用废弃的API版本,导致资源映射失败。
解决办法
办法一:升级MongoDB Helm Chart到兼容版本
- 更新Helm仓库索引:
helm repo update mongodb - 查看仓库中最新的Chart版本:
helm search repo mongodb/mongodb --versions - 安装/升级到最新兼容版本(替换
<最新版本号>为实际查到的版本,如15.0.0):helm upgrade mongodb mongodb/mongodb --install --set replicaSet.enabled=true --version <最新版本号>
办法二:强制指定PodDisruptionBudget的API版本(无需升级Chart)
通过values参数直接指定使用policy/v1版本,覆盖Chart默认配置:
helm upgrade mongodb mongodb/mongodb --install --set replicaSet.enabled=true --set arbiter.pdb.apiVersion=policy/v1 --set secondary.pdb.apiVersion=policy/v1
办法三:匹配Kubernetes集群版本选择旧版Chart(仅适用于K8s <1.21)
- 先查看你的Kubernetes集群版本:
kubectl version --short - 如果集群版本是1.20及以下,选择支持
policy/v1beta1的旧版Chart(如10.29.0):helm upgrade mongodb mongodb/mongodb --install --set replicaSet.enabled=true --version 10.29.0
内容的提问来源于stack exchange,提问作者Nikita Polevoy
相关产品推荐
相关产品推荐

