Minikube安装DataHub失败:Elasticsearch部署遇PodDisruptionBudget版本错误
解决DataHub前置依赖安装时PodDisruptionBudget API版本错误问题
错误原因
你的Minikube集群使用的Kubernetes版本≥1.21,而旧版本的DataHub prerequisites Helm Chart仍在使用已废弃的policy/v1beta1版本定义PodDisruptionBudget(PDB),该API版本在K8s 1.21+中已被移除,替换为policy/v1。
解决方案
方案1:升级DataHub prerequisites Helm Chart到兼容版本
- 更新Helm仓库,确保获取到最新的Chart版本:
helm repo update datahub - 直接安装最新版本的前置依赖(新版本已适配K8s 1.21+的API):
若需要指定具体版本,可先查询可用版本:helm install prerequisites datahub/datahub-prerequisites
选择一个≥0.1.15的版本安装(该版本开始适配policy/v1):helm search repo datahub/datahub-prerequisites --versionshelm install prerequisites datahub/datahub-prerequisites --version 0.1.15
方案2:手动修改Chart的PDB API版本后本地安装
如果无法升级Chart版本,可手动修改模板文件:
- 拉取Chart到本地并解压:
helm pull datahub/datahub-prerequisites --untar - 进入解压后的目录,找到Elasticsearch的PDB模板文件:
cd datahub-prerequisites/templates/elasticsearch - 编辑
pdb.yaml文件,将apiVersion: policy/v1beta1替换为apiVersion: policy/v1,同时确保spec下的selector字段嵌套在matchLabels中(policy/v1要求更严格的格式):
示例修改后内容:apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: elasticsearch-master-pdb labels: app: elasticsearch-master spec: minAvailable: 1 selector: matchLabels: app: elasticsearch-master - 从本地目录安装修改后的Chart:
helm install prerequisites ./datahub-prerequisites
方案3:使用旧版本Kubernetes启动Minikube
如果暂时不想修改Chart,可启动一个K8s版本<1.21的Minikube集群:
minikube start --kubernetes-version=v1.20.15
之后再执行官方指南中的安装命令即可。
验证安装
安装完成后,执行以下命令确认PDB资源正常创建:
kubectl get poddisruptionbudgets
内容的提问来源于stack exchange,提问作者Gustavo Lima
相关产品推荐
相关产品推荐

