gpt4 book ai didi

docker - Docker Swarm服务网络

转载 作者:行者123 更新时间:2023-12-02 18:23:38 25 4
gpt4 key购买 nike

对于DevOps大学项目,我们的任务是使用docker和Jenkins等构建网络视频流服务。我们完全免费地控制着我们的工作方式……Swarm看起来很有趣,所以我想我给它一个继续(因为它确实可以进行复制,因此可能会给我一些奖励积分)。

我的背景是数据(python很有趣),因此服务器和网络等不是我的专长。另外,这一切都在我的机器上本地完成。

我正在努力与实际的docker服务进行通信(通过softinstigate / restheart镜像与Mongodb服务进行通信)。

它已复制到两台docker机器上。然后连接到本地网络,该本地网络又连接到另一个“代理”覆盖网络。

因此,如何连接到该特定的restheart api服务以获取HTML页面的一些数据?正常的容器构建等将是localhost:chosenport。但是我相信docker-machines是一个不同的IP地址吗?如何定义端口号?

从本质上讲,一个人如何从某个网站页面连接到大量的特定服务?

我发现有几篇文章可以通读,但当时却无能为力。想想我可能曾尝试将本地主机地址更改为领导者群集节点的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 \

最佳答案

Docker Swarm模式具有内部LoadBalancing。每当创建发布了某些端口的服务时,您都可以通过单击管理器节点或辅助节点中的任何一个来访问该服务。
例如:
管理员IP 192.168.2.2
worker IP 192.168.2.3

说服务正在9000端口的工作节点中运行
您可以通过192.168.2.2:9000或192.168.2.3: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/

关于docker - Docker Swarm服务网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41209676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com