GKE 1.22+版本部署CDAP失败,咨询版本兼容性问题
GKE 1.22及更高版本部署CDAP报错问题解答
错误原因分析
你遇到的Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "CDAPMaster" in version "apiextensions.k8s.io/v1"错误,核心原因是Kubernetes 1.22版本开始彻底移除了apiextensions.k8s.io/v1beta1 CRD API版本,而旧版CDAP的部署清单可能存在以下问题:
- 仍依赖
v1beta1版本的CRD定义,但部署时错误引用了v1版本; - 未适配
apiextensions.k8s.io/v1版本的CRD规范(比如缺少spec.preserveUnknownFields: false等必填配置)。
是否仅支持GKE 1.21版本?
不是。CDAP存在支持GKE 1.22及更高版本的发行版,你当前的问题是由于使用的CDAP版本未适配Kubernetes 1.22+的CRD API变更导致的,而非CDAP本身不支持高版本GKE。
解决方案
升级CDAP版本
升级到适配Kubernetes 1.22+的CDAP版本,这类版本会默认使用apiextensions.k8s.io/v1版本的CRD定义,完全兼容GKE 1.22及以上集群。可参考官方文档《在Kubernetes上安装CDAP》获取对应版本的部署指引。手动修改CRD清单(临时方案)
若暂时无法升级CDAP,可手动调整CDAP的CRD配置:- 将CRD清单中的
apiVersion从apiextensions.k8s.io/v1beta1改为apiextensions.k8s.io/v1; - 在CRD的
spec字段下添加preserveUnknownFields: false(v1版本CRD要求显式设置该字段); - 重新安装CRD后再部署CDAP。
- 将CRD清单中的
内容的提问来源于stack exchange,提问作者saurabh umathe
相关产品推荐
相关产品推荐

