2

DevOps大学のプロジェクトでは、ドッカーとJenkinsなどを使ってWebビデオストリーミングサービスを構築することになっています。私たちはそれをどうやるのかについて完全に自由な治世を持っています。私はそれを行くと思った(それはおそらくいくつかのボーナスポイントを与えるだろうレプリケーションを行う)。Docker Swarm Service Networking

私の背景はデータのものです(pythonは面白かったです)ので、サーバーやネットワークなどは私の特権ではありません。また、これは私のマシン上でローカルに行われています。

私は実際のドッカーサービス(Mongodbサービスと通信するためのソフトの開始/再開イメージ)と通信するのに苦労しています。

2台のドッカーマシンで複製されます。その後、ローカルネットワークに接続し、ローカルネットワークは別の「プロキシ」オーバーレイネットワークに接続します。

したがって、特定のrestheart APIサービスに接続して、HTMLページのデータを取得するにはどうすればよいですか?通常のコンテナビルドなどは、localhost:selectedportです。しかし、私はドッカーマシンとは異なるIPアドレスを信じていますか?ポート番号はどのように定義されていますか?

本質的に、たとえばウェブサイトのページなど、swarm内の特定のサービスにどのように接続しますか?

読める記事がいくつか見つかりましたが、その時点で頭や尾を作ることはできませんでした。私は、ローカルホストアドレスをリーダースウォームノードのIPアドレスに変更しようとしたかもしれないと思うでしょう。

設定を続行するためのDockerコマンド - 私の電話機での日時。

# https://technologyconversations.com/2016/07/29/docker-swarm-introduction-tour-around-docker-1-12-series/ 

#### create machines 

for i in 1 2 3; do 
echo docker-machine create -d virtualbox node-$i 
docker-machine create -d virtualbox node-$i 
done 

docker-machine ls 


#### active machine = node-1 
eval $(docker-machine env node-1) 


#### node-1 join swarm 

echo node-1 joins swarm as manager, token variable saved as $TOKEN 
docker swarm init  --advertise-addr $(docker-machine ip node-1) --listen-addr $(docker-machine ip node-1):2377 


#### token value for swarm as a envirnomanet variable 
TOKEN=$(docker swarm join-token -q worker) 


#### join the relevant worker nodes to the swarm 
for i in 2 3; do 
echo node-$i to join the swarm 
eval $(docker-machine env node-$i) 
docker swarm join  --token $TOKEN $(docker-machine ip node-1):2377 
done 


#### move vack to node-1 
echo moving back to node-1 
eval $(docker-machine env node-1) 


#### https://github.com/vfarcic/docker-flow-proxy/blob/master/articles/swarm-mode-listener.md 


#### create networks 
echo starting networks 
docker network create --driver overlay webapp-data-store 
docker network create --driver overlay proxy 


#### create swarm listener monitor on proxy network 
echo starting swarm listener service..... 
docker service create --name swarm-listener --network proxy \ 
    --mount "type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock" \ 
    -e DF_NOTIF_CREATE_SERVICE_URL=http://proxy:8080/v1/docker-flow-proxy/reconfigure \ 
    -e DF_NOTIF_REMOVE_SERVICE_URL=http://proxy:8080/v1/docker-flow-proxy/remove \ 
    --constraint 'node.role==manager' \ 
    vfarcic/docker-flow-swarm-listener 


#### create proxy service on proxy network 
echo proxy service start up 
docker service create --name proxy \ 
    -p 80:80 -p 443:443 -p 8080:8080 \ 
    --network proxy \ 
    -e MODE=swarm \ 
    -e LISTENER_ADDRESS=swarm-listener vfarcic/docker-flow-proxy 


#### RESTHEART SERVICE 
echo start the restheart service 
docker service create --name video-restheart \ 
    --network webapp-data-store 
    --replicas 3 \ 
    softinstigate/restheart 

# video mongo data store 

echo video-db start up 
docker service create --name video-db \ 
    --network webapp-data-store 
    --replicas 3 \ 

答えて

2

Docker Swarmモードには内部LoadBalancingがあります。一部のポートを公開してサービスを作成する場合は、マネージャノードまたはワーカーノードのいずれかを押してサービスにアクセスできます。 EXの場合 : マネージャのIP 192.168.2.2 労働者のIP 192.168.2.3

セイサービスはあなたが192.168.2.2:9000または192.168.2.3:9000を介してアクセスすることができます 9000ポートのワーカーノードで実行されています。 Dockerは内部的にコンテナを修正する要求をルーティングします。

完全な理解を得るには、このブログをご覧ください。 http://blog.scottlogic.com/2016/08/30/docker-1-12-swarm-mode-round-robin.html

また、コンテナにLBを設定し、コンテナに直接当たる代わりにLBを押すことができます。 ここに例があります。

https://technologyconversations.com/2016/08/01/integrating-proxy-with-docker-swarm-tour-around-docker-1-12-series/