Elasticsearch On K8S 大家有用到吗,存储怎么解决的

2021-11-08 18:46:58 +08:00
 leiuu

RT 。

K8S 「蒙」新一个。

目前正准备基于 ECK 在 k8s 集群上搭建一套 Elasticsearch 集群。

存储这块可能得用 local-pv 解决(公司没有 ceph 或者其他解决方案)。

找到一个local-path-provisioner 基本能满足需求,但不确定是否应该用此上生产...

想了解大家有类似 k8s 有状态应用(存储数据较多)场景的生产经验吗?推荐用什么解决存储。

3438 次点击
所在节点    Kubernetes
14 条回复
Alliot
2021-11-08 19:06:05 +08:00
可以。
直接挂 ESSD 卷当存储比较合适。local pv 不好管控。
leiuu
2021-11-08 19:19:45 +08:00
@Alliot 谢谢小哥。我看了 ESSD 好像是指阿里云的云盘吧。云盘高级版确实性能很好(PL3 IOPS 100w)。 不过目前我的使用场景里是自己搭建的 K8S 集群,配置是只有 5* 32 core, 128G,4T SSD 。阿里的云盘暂时用不到。

另外想再请教一下,不好管控具体指哪一方面?
Alliot
2021-11-08 19:35:29 +08:00
@leiuu 不好管控主要是 pod 漂移与存储扩容的问题。 自建集群的话,也可以用 NFS 之类的,不过性能较低,不推荐。
leiuu
2021-11-08 20:01:06 +08:00
@Alliot

k8s 了解很少,大概可以理解您的回答。

pod 漂移这种的话 ECK Operator 会有个方法,判断是否需要重新同步索引数据。每一个份数据实际绑定在一个 pod 上。如果是 pod 在本地重启成功,数据直接能恢复。如果是失败了,漂到其他节点的话,它应该会自动同步数据。

存储扩容是会麻烦,因为我们可能不会有很多突发数据,所以可能倾向于前期规划尽量做好,后续假设扩容,那只能通过节点下线的方式扩啦。

NFS 确实也考虑过,配置起来最方便,但考虑到每天会有大量写入的使用场景(几十亿条)。确实不太适用。
zhenjiachen
2021-11-08 21:00:44 +08:00
最好不要,我试过用 rook 作为存储,经常会导致 rook 崩溃,然后又会影响到其他应用,搞的我赶紧把 es 从 k8s 迁移出来单独部署
pmispig
2021-11-08 21:09:56 +08:00
请问是出于什么目的要把 es 放到 k8s 上呢?这种东西感觉没有任何理由要放在 k8s 上
momomirage
2021-11-08 21:28:16 +08:00
以前问过类似问题 最后用了几个 iscsi pv (自用的 uptime 不重要的服务)
swulling
2021-11-08 21:59:43 +08:00
用 local-path 可以的,ES 本身就有数据 replication 机制,底层用云盘实属于浪费~
vus520
2021-11-08 23:43:31 +08:00
ES 的集群搭建,已经足够简单了,性能也高,ES 放到 k8s 上是有什么想不开的事情吗?

Elasticsearch Kubernetes Operator 这几个单词就够累了。
dayeye2006199
2021-11-09 02:14:01 +08:00
看你的 k8s 集群是怎么搭的。
如果用的是云厂商直接 host 的集群(例如 AWS 的 EKS ,Azure 的 AKS),PV 一般直接都映射到云厂商的存储产品上。
例如 AWS 的 EBS ,EFS ,Azure 的 Azure Disk ,Azure Files
Alliot
2021-11-09 10:23:28 +08:00
@leiuu operator 没必要了。 如果重要或者复杂场景的 ES 直接用 SaaS 产品省心省力。。。
leiuu
2021-11-09 10:51:21 +08:00
@pmispig
@vus520

是的,我们运维也是类似反应。哈哈。
用 ECK 主要原因是 3 个。
1. 我们有一些高配的机器,裸机部署单实例 ES 性能有些浪费,多实例似乎资源分割没 k8s 那么好;
2. 后续有计划将更多应用上 k8s ,借此契机做一下这块;
3. ECK 很方便可以搭建多个集群。
SmiteChow
2021-11-09 11:17:09 +08:00
容器是用来解决隔离,隔离是为了共享 cpu 和内存硬件,数据库和磁盘是紧密相关的,不适用。

想要扩容磁盘,可以使用集群部署 db ,而不是容器化。
JackCooper
2021-11-09 11:45:23 +08:00
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:7.5.2

docker 不香吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/813956

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX