ES cluster with StatefulSet or ES operator?
Opened this issue · 3 comments
Hi everyone,
I'm looking into prod ready ES deployment and I like the flexibility of using k8s StatefulSet's or Deployments. So, my question is, use this repo or ES operator on k8s - https://github.com/upmc-enterprises/elasticsearch-operator?
I liked the idea of operators, but it seems that apps are getting more "cloud native" and with k8s improving a lot with each release, I don't see the need for Operators. Maybe I'm wrong, so I would like to get your opinion on this topic.
Also, if you are using ES in prod, how it is deployed on k8s?
Thanks!
I'd start with this repo to understand a few basics around running Elasticsearch with Kubernetes, including a few issues - like why using StatefulSet. Then, I'd go with the operator. It's OSS too and one can extend it in order to accomodate one's needs - but yeah, you need deeper Kubernetes expertise to adapt it, but not to adopt it ;)
I'm in the same boat as @komljen . It's fuzzy to me what ES operator offers beyond what https://github.com/pires/kubernetes-elasticsearch-cluster offers, for example. It looks like they both try to add ES to k8s keeping in mind ES-specifics, like the pod anti-affinity. Zone awareness would be another good one, but I think neither https://github.com/pires/kubernetes-elasticsearch-cluster or https://github.com/upmc-enterprises/elasticsearch-operator have that yet.
I don't know the specifics of the operator but in theory, an operator can/should be more powerful than the StatefulSet and provide features specific to Elasticsearch operations, e.g. resharding.