首页 > 解决方案 > 在多用途(即非专用)集群上运行 Elasticsearch 有什么缺点吗?

问题描述

我刚刚使用 GKE 的一次单击部署配置设置了一个 Elasticsearch (ES) 3 节点集群。每个节点都是 n1-standard-4 机器类型(4vCPU/15GB RAM)。我一直在专用于单一目的的集群上运行 ES(性能原因、关注点分离、让我的生活更容易调试机器故障),目前,这个 GKE 集群也是如此。

但是,我有一组批处理作业,我想移植到 GKE 集群上运行。由于它更新了几个大文件,我希望它也可以在有状态的集群上运行(就像 ES 一样),这样我就可以每天一次将更新的文件移动到云端,而不是每次运行都往返。有问题的批处理作业每天以 5 分钟、15 分钟或每天的频率运行约 18 小时。

我现在的问题是,鉴于现有的 ES 集群,部署此批处理的最佳方式是什么……

注意:我一般使用 GKE 和容器化已经有几天了

标签: elasticsearchgoogle-cloud-platformgoogle-kubernetes-engine

解决方案


根据我的知识,我会选择另一个nodepoolautoscaler

创建一个全新的集群?

对我来说,仅仅运行这些工作就太过分了。

创建另一个节点池?

我会说它与自动缩放器同样是最好的选择,只为那些如果没有更多可做的工作将缩减到 0 的作业创建一个新的节点池。


创建一个单独的命名空间并增加集群的自动缩放?

与另一个节点池相同,但从我的角度来看,如果你想这样做,那么你必须将你的节点标记到 Elasticsearch,然后作业不能从它们那里获取任何资源,所以从评论中回答你的问题

我的问题更多的是关于在同一个集群中使用自动缩放器执行此操作是否会以任何方式影响所有 ES 特定 yaml 配置的 elasticsearch esp?

不应该,正如我上面所说,您始终可以将 3 个特定节点(默认节点池)标记为仅与 elasticsearch 一起使用,然后什么都不会占用它们的资源,集群将在需要更多资源用于作业并重新缩放到 3 ES 时重新缩放作业结束 18 小时工作时的节点。


另外关于 6h 节点池什么都不做评论,我不能在最小缩放参数为零的新集群或节点池上避免这种情况吗?

根据gcp 文档,它适用于 nodepool,但不适用于新集群。

如果您指定最少零个节点,则空闲节点池可以完全缩减。但是,集群中必须始终至少有一个节点可用以运行系统 Pod。


tldr选择自动缩放器或其他节点池,如果您担心 ES 的资源,请为 ES 标记 3 个节点。


我希望它能回答你的问题。如果您还有其他问题,请告诉我。


推荐阅读