我想在Kubernetes集群中安装ES时,在YAML安装文件中配置默认的Index Lifecycle Management (ILM)策略和索引模板,而不是在安装后调用ES API。我该如何做?
我有Elasticsearch安装在kubernetes集群基于YAML文件。
以下查询起作用。
第一个
我想在安装后有以上设置,而不做任何curl
查询。
我想在Kubernetes集群中安装ES时,在YAML安装文件中配置默认的Index Lifecycle Management (ILM)策略和索引模板,而不是在安装后调用ES API。我该如何做?
我有Elasticsearch安装在kubernetes集群基于YAML文件。
以下查询起作用。
第一个
我想在安装后有以上设置,而不做任何curl
查询。
2条答案
按热度按时间tyu7yeag1#
我会试着回答你的两个问题。
索引模板
您可以在elasticsearch yaml中传递带有此配置的索引模板。例如:
检查ES文档以查看该setup.template的确切位置,然后就可以开始了。
胶片策略
要实现这一点,您需要将包含ILM配置的ilm-policy.json文件放到pod的/usr/share/filebeat/目录中,然后在您的配置文件中使用下面这一行命令来使其工作(我已经添加了我的整个ILM配置):
那么,如何将文件放到那里呢?组件包括1个包含ilm-policy.json的configmap,以及daemonset配置中的一个卷和volumeMount,用于将configmap的内容挂载到pod的目录中。
**注意:**我使用helm将filebeat部署到AKS集群(v 1.15),它连接到弹性云。在您的情况下,存储json的应用程序文件夹可能是
/usr/share/elasticsearch/ilm-policy.json
。在下面,你会看到一行类似
{{ .Files.Get <...> }}
的代码,这是helm获取文件内容的模板函数。或者,你可以直接将文件内容复制到configmap yaml中,但是在我看来,将文件分开会使它更好管理。配置Map
确保部署可以访问ilm-policy.json。configmap的外观如下:
“恶魔初代"
在deamonSet的volumeMounts部分,附加以下内容:
并在音量部分添加以下内容:
我不太确定浏览器中的间距是否正确,但这应该给予一个很好的主意。我希望这对你的设置有效!祝你好运。
rdrgkggo2#
我已经使用这个答案为运行ECK的Packetbeat设置了一个自定义策略。
配置Map:
节拍配置:
Beat配置中的重要部分是卷装载,我们在其中将配置Map装载到容器中。
在此之后,我们可以使用
setup.ilm.policy_file
在config中引用该文件。