为自托管和 Elastic Cloud on Kubernetes 部署配置数据层
无论您是在自己的基础设施上还是在 Kubernetes 上使用 Elastic Cloud on Kubernetes 运行 Elasticsearch,数据层都是通过每个节点的数据角色来表示的。您可以通过将相应的 data_* 角色分配给节点或 ECK 节点集来选择集群提供哪些数据层。
- 查看 Elasticsearch 数据层,以便将数据层与您的工作负载相匹配。
- 了解节点角色如何映射到每个数据层的硬件和分配。
- 对于每个节点,决定它应该参与哪些数据层(例如
data_hot、data_warm、data_cold、data_frozen或data_content)。 - 在该节点的
elasticsearch.yml中设置node.roles,以包含相应的data_*角色(以及该节点应具有的任何其他角色,例如ingest或master)。 - 重启节点或应用您的配置更新流程,以便新角色生效。
例如,集群中性能最高的节点可以同时分配到热层和内容层
node.roles: ["data_hot", "data_content"]
注意
我们建议您在冻结层使用专用节点。
您通常放在 elasticsearch.yml 中的 Elasticsearch 设置,在 Elasticsearch 资源清单中通过 spec.nodeSets[?].config 按节点集进行设置。在此处分配 node.roles 以定义每个 Pod 组的数据层。例如,您可以分配以下数据层
spec:
nodeSets:
- name: hot-content
count: 3
config:
node.roles: ["data_hot", "data_content", "ingest"]
某些设置由 Elastic Cloud on Kubernetes 管理;请避免覆盖这些设置。有关清单结构与 Elasticsearch 配置之间的完整映射,请参阅 节点配置。
注意
在 Elastic Cloud on Kubernetes 上,节点集和缩放更改会尝试从已移除的节点重定位分片,这受到分配规则、容量以及目标节点上的 磁盘水位线 的限制。有关更多信息,请参阅 Elastic Cloud on Kubernetes 文档。