0

我使用 docker-compose v3 文件在 docker swarm 模式集群上部署服务。我的服务是 elasticsearch 和 kibana。我希望 kibana 可以从外部访问,并且 elasticsearch 可以通过 kibana 访问,并且从外部不可见且无法访问。为了达到这种行为,我创建了 2 个覆盖网络,称为“外部”和“elk_only”。我将 elasticseach 放在“elk_only”网络上,并将 kibana 放在“elk_only”和“外部”网络下。而且事情不起作用。当我转到 localhost:5601(kibana 的端口)时,我收到一条消息:'localhost 拒绝连接'。

我用来部署服务的命令是

docker stack deploy --compose-file=elastic-compose.yml elkstack

elastic-compose.yml 文件内容:

version: "3"
services:
elasticsearch:
image: elasticsearch:5.1
expose:
  - 9200
networks:
  - elk_only
deploy:
  restart_policy:
    condition: on-failure
kibana:
image: kibana:5.1
ports:
  - 5601:5601
volumes:
  - ./kibana/kibana.yml:/etc/kibana/kibana.yml
depends_on:
  - elasticsearch
networks:
  - external
  - elk_only
deploy:
  restart_policy:
    condition: on-failure
networks:
  elk_only:
  driver: overlay
external:
driver: overlay

kibana.yml 的内容是

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://elkstack_elasticsearch:9200"

你能帮我解决这个问题并了解出了什么问题吗?任何帮助,将不胜感激!

4

0 回答 0