2

DevOps 大学のプロジェクトでは、docker や Jenkins などを使用して Web ビデオ ストリーミング サービスを構築する任務を負っています。その方法については完全に自由です。Swarm は面白そうだったので、行きます(おそらくいくつかのボーナスポイントを与える複製を行うため)。

私のバックグラウンドはデータ関連なので (Python はとても楽しかったです)、サーバーやネットワークなどは私の得意分野ではありません。また、これはすべて私のマシンでローカルに行われています。

実際の docker サービス (Mongodb サービスと通信するための softinstigate/restheart イメージ) との通信に苦労しています。

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

では、その特定の restheart api サービスに接続して、HTML ページのデータを取得するにはどうすればよいでしょうか? 通常のコンテナのビルドなどは、localhost:chosenport になります。しかし、ドッカーマシンでは別のIPアドレスだと思いますか? ポート番号はどのように定義されていますか?

要するに、たとえばウェブサイトのページから群れ内の特定のサービスに接続するにはどうすればよいのでしょうか?

読み通す記事をいくつか見つけましたが、その時点では頭も尻尾もできませんでした。localhost アドレスをリーダー 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 \
4

1 に答える 1