如何使用 helm 将 "cold data node" 添加到 elasticsearch 集群?

How to add "cold data node" to elasticsearch cluster using helm?

我想添加COLD数据节点(NOT 数据节点)到我的 elasticsearch 集群使用 helm:

我的values.yaml:

...
roles:
  master: "false"
  ingest: "false"
  data: "false"
  remote_cluster_client: "false"
  ml: "false"
  data_cold: "true"
...

但是在部署它时,我得到了这个错误:

java.lang.IllegalArgumentException: unknown setting [node.data_cold] please check that any required plugins are installed, or check the breaking changes documentation for removed settings

有什么想法吗?

提前致谢!

假设您使用的是 Elastic helm 图表,我通过在我的 values.yml 中设置以下内容来完成此操作:

extraEnvs:
  - name: 'node.attr.data'
    value: '{{ ilm_phase }}'

并在我的 vars.yml 中为每个单独的数据层设置以下内容:

ilm_phase: 'cold'  # ...or hot, or whatever...

最后,在我的 ILM 策略中使用自定义节点属性。

它并不理想,但效果很好,即使它不像使用 node.roles 那样微妙。如果其他人有更好的方法,我愿意接受。

编辑

我忘了我还添加了以下模板,它适用于创建的所有新索引。这会强制在热数据节点上创建所有新索引。

PUT _template/ilm-set-index-ilm-hot
{
  "order": 127,
  "index_patterns": [ "*" ],
  "settings": {
    "index": {
      "routing": {
        "allocation": {
          "require": {
            "data": "hot"
          }
        }
      }
    }
  },
  "mappings": {},
  "aliases": {}
}