如何让K8S识别Elasticsearch自定义资源Kind类型
no matches for kind "Elasticsearch" in version "elasticsearch.k8s.elastic.co/v1" 报错的核心原因是Kubernetes集群中不存在该API资源定义。Elasticsearch属于Elastic官方提供的自定义资源(CRD),默认Kubernetes集群不会内置该资源定义,必须先部署ECK(Elastic Cloud on Kubernetes)Operator才能正常识别和处理该类资源。
解决操作步骤
- 第一步:安装ECK自定义资源定义
先获取对应版本的ECK CRD部署文件,执行命令完成CRD注册:
注册完成后可执行kubectl apply -f crds.yamlkubectl get crds | grep elasticsearch.k8s.elastic.co验证,返回对应CRD记录则表示注册成功。 - 第二步:部署ECK Operator
拿到同版本的ECK Operator部署文件后,执行命令完成Operator部署:
部署后执行kubectl apply -f operator.yamlkubectl get pods -n elastic-system检查Operator Pod运行状态,所有Pod处于Running状态后即可进行下一步操作。 - 第三步:重新部署Elasticsearch资源
Operator正常运行后,执行原部署命令即可:kubectl apply -f es.yml
版本兼容说明
你需要部署的Elasticsearch版本为7.15.0,需搭配1.9.0及以上版本的ECK Operator使用,避免出现版本不兼容导致的部署失败问题。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

