我使用 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"
你能帮我解决这个问题并了解出了什么问题吗?任何帮助,将不胜感激!