# Docker swarm - create a single service elasticsearch 3 node cluster

**URL:** <https://discuss.elastic.co/t/docker-swarm-create-a-single-service-elasticsearch-3-node-cluster/286027>\
**Category:** Elasticsearch\
**Tags:** docker\
**Created:** [October 6, 2021, 12:47pm UTC](https://discuss.elastic.co/t/docker-swarm-create-a-single-service-elasticsearch-3-node-cluster/286027 "2021-10-06T12:47:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bieniek](https://avatars.discourse-cdn.com/v4/letter/b/c57346/32.png) [@Bieniek](https://discuss.elastic.co/u/Bieniek)\
**Post date:** [October 6, 2021, 12:47pm UTC](https://discuss.elastic.co/t/docker-swarm-create-a-single-service-elasticsearch-3-node-cluster/286027/1 "2021-10-06T12:47:03Z")

</div>

_I’m trying to create a single service Elasticsearch 3 node cluster. I cannot set the cluster.initial\_master\_nodes environment variable appropriately._  
_I’m using:_

```
redhat 7 server
docker Version: 17.09.0-ce

```

_The below EFK.yml deploys successfully but cannot determine the master-eligible nodes._

```auto
version: "3.3"
services:
  elasticsearch:
    image: repository.net/efk/elasticsearch-7-12-1
    environment:
      - node.name=node.{{.Task.Slot}}
      - discovery.seed_hosts=tasks.elasticsearch
      - discovery.type=zen
      - network.host=0.0.0.0
      - cluster.name=k-test-cluster
      - cluster.initial_master_nodes=node.1,node.2,node.3
      - node.ml=false
      - bootstrap.memory_lock=false
      - "ES_JAVA_OPTS=-Xms8192m -Xmx8192m"
      - xpack.security.enabled=true
      - ELASTIC_PASSWORD=changeIt
    ports:
      - 9200
      - 9300
    networks:
      - private
    volumes:
      - /opt/mount1/elasticsearch/data:/usr/share/elasticsearch/data
      - /opt/mount1/elasticsearch/logs:/usr/share/elasticsearch/logs
    deploy:
      mode: global
      placement:
        constraints: [node.role == worker]

```

_To deploy:_  
docker stack deploy -c EFK.yml EFK

_Warming error message:_

```auto
{"type": "server",  
"timestamp": "2021-09-28T11:26:18,867Z",  
"level": "WARN",  
"component": "o.e.c.c.ClusterFormationFailureHelper",  
"cluster.name": "k-test-cluster",  
"node.name": "node.qvf6m2d81mypjiv5ndvgq7ph6",  
<b>"message": "master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster,  
and this node must discover master-eligible nodes </b> 
[node.1, node.2, node.3] to bootstrap a cluster: have discovered <br> [{node.qvf6m2d81mypjiv5ndvgq7ph6}{1fOzv5V7SdebaX2ECmd2rQ}{zk_287GXSGSuPV4mCT2diw}{10.0.0.4}{10.0.0.4:9300}{cdfhimrstw}  
{xpack.installed=true, transform.node=true}, <br> {node.98apd4okuoqu8ezjdw24j97ih}{tLwF0Tr1TtOfT2jNuGp1tA}{VphiDK9IQGS6CJG1Mfltrw}{10.0.0.4}{10.0.0.4:9300}{cdfhimrstw}  
{xpack.installed=true, transform.node=true}, 
{node.wfyhphmldrccpptjn8wxvlup0}{OG_VB4nlSFmZYkrJYIoyoA}{-Ku2biybQmalTyhRPe37mQ}{10.0.0.4}{10.0.0.4:9300}{cdfhimrstw}  
{xpack.installed=true, transform.node=true}];  
discovery will continue using [10.0.0.7:9300, 10.0.0.5:9300, 10.0.0.6:9300] from hosts providers and <br> [{node.qvf6m2d81mypjiv5ndvgq7ph6}{1fOzv5V7SdebaX2ECmd2rQ}{zk_287GXSGSuPV4mCT2diw}{10.0.0.4}{10.0.0.4:9300} {cdfhimrstw}  
{xpack.installed=true, transform.node=true}]  
from last-known cluster state; node term 0, last-accepted version 0 in term 0" }

```

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [October 6, 2021, 6:12pm UTC](https://discuss.elastic.co/t/docker-swarm-create-a-single-service-elasticsearch-3-node-cluster/286027/2 "2021-10-06T18:12:40Z")

</div>

> [@Bieniek](#):
>
> ```auto
> "node.name": "node.qvf6m2d81mypjiv5ndvgq7ph6",  
> 
> ```

You need to ensure that the nodes have predictable names and then set them in the `cluster.initial_master_nodes` property.

Docker Swarm is a good fit for stateless things but Elasticsearch is very much not stateless so you might encounter various problems going down this path.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 3, 2021, 6:12pm UTC](https://discuss.elastic.co/t/docker-swarm-create-a-single-service-elasticsearch-3-node-cluster/286027/3 "2021-11-03T18:12:58Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
