<p>I am going to prepare deployment configuration for Elasticsearch (elasticsearch-oss image). I found multiple non-official docs and tutorials about Elasticsearch on Kubernetes. 
I wonder which deployment way is the best and safest. I found 3 differend ways:</p>

<ol>
<li><p>Deployment using statefulset <strong>without division into master/data/client nodes</strong>. In this solution, I need to define: discovery.seed_hosts and cluster.initial_master_nodes in env config. This is further described in <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-an-elasticsearch-fluentd-and-kibana-efk-logging-stack-on-kubernetes" rel="nofollow noreferrer">https://www.digitalocean.com/community/tutorials/how-to-set-up-an-elasticsearch-fluentd-and-kibana-efk-logging-stack-on-kubernetes</a></p></li>
<li><p>Deployment using statefulset <strong>with division into master/data nodes</strong> (example: <a href="https://engineering.udacity.com/high-performance-elk-with-kubernetes-part-1-1d09f41a4ce2" rel="nofollow noreferrer">https://engineering.udacity.com/high-performance-elk-with-kubernetes-part-1-1d09f41a4ce2</a>)</p></li>
<li><p>Deployment using statefulset <strong>with division into master/data/client nodes</strong>.</p></li>
</ol>

<p>In my case, I would like to have 1 master node and 2 data nodes. Which solution is best? 
Can you provide some good resources that describe elasticsearch deployment?</p>

<p>Thanks</p>

<p>Look at ES operator from Zalando. It's pretty brilliant! <a href="https://github.com/zalando-incubator/es-operator" rel="nofollow noreferrer">https://github.com/zalando-incubator/es-operator</a></p>
