0

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"

この問題を解決し、何が問題なのかを理解するのを手伝ってくれませんか? どんな助けでも大歓迎です!

4

0 に答える 0