docker-compose v3 ファイルを使用して、docker swarm モード クラスターにサービスをデプロイします。私のサービスはelasticsearchとkibanaです。Kibana が外部からアクセス可能であり、elasticsearch が Kibana によってアクセス可能であり、外部からは見えず、アクセスできないことを望みます。この種の動作に到達するために、「external」と「elk_only」という 2 つのオーバーレイ ネットワークを作成しました。Elasticseach を「elk_only」ネットワークに配置し、kibana を「elk_only」および「external」ネットワークの下に配置しました。そして、物事はうまくいきません。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"
この問題を解決し、何が問題なのかを理解するのを手伝ってくれませんか? どんな助けでも大歓迎です!