【发布时间】:2021-03-26 00:03:57
【问题描述】:
由于 ES 的 docker 容器,我面临一个奇怪的问题,我早些时候在 9200 主机端口(内部 docker 端口与标准 9200 和 9300 ES 端口相同)在 docker 容器中运行独立 ES 7.10,同时,我启动了三个 ES docker 容器(具有不同的次要版本 7)(它们应该形成集群,我们将其命名为 docker-es-cluster)。
这三个 ES docker 容器使用主机端口 9200、9201、9202,因此使用 9200 的集群中的 ES 容器由于端口冲突(ES 7.10)ES 容器而无法启动。
所以我停止了独立的 7.10 docker 容器并再次重新启动了 3 个集群 ES 容器,但现在我的其他 2 个正在监听 9201、9202 的 ES 容器没有启动,并且它们的日志包含以下警告:
{"type": "server", "timestamp": "2020-12-14T15:56:57,651+0000", “级别”:“警告”,“组件”:“o.e.c.c.ClusterFormationFailureHelper”, “cluster.name”:“docker-cluster”,“node.name”:“es2”,“message”: “master还没有发现,这个节点之前没有加入过 自举 (v7+) 集群,并且该节点必须发现 master-eligible nodes [] 来引导集群:hfrom hosts providers 和 [{es2}{eBtsR2XgRVWqPdUAP_n_Ew}{tZ9FRAbPTAmZZle_5MaVoA}{172.18.0.3}{172.18.0.3:9300}{dim}{ml.machine_memory=2084032512, xpack.installed=true, ml.max_open_jobs=20}] 来自最后一个已知集群 状态;节点术语 0,术语 0 中最后接受的版本 0" }
在此之后,我停止了所有 docker 容器,删除了所有 docker 镜像,做了 docker prune,系统重新启动,但没有解决问题,即使我从干净状态开始,似乎集群状态搞砸了对于 2 个 ES 容器,即使重新启动 docker 容器也没有得到修复。
我用于 ES 容器的 docker-compose 如下所示,我没有使用卷绑定
es2:
image: "docker.elastic.co/elasticsearch/elasticsearch:<es-version>"
container_name: 2
environment:
- node.name=2
- cluster.name=docker-cluster
- cluster.initial_master_nodes=1,2,3
- discovery.seed_hosts=1,3
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ports:
- "9201:9200"
networks:
- localenv
【问题讨论】:
标签: docker elasticsearch docker-compose discovery