首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头群覆盖VIP

码头群覆盖VIP
EN

Stack Overflow用户
提问于 2016-08-22 04:52:51
回答 1查看 4.1K关注 0票数 2

我让码头工人12.1在我的节点上运行。我有一个4项任务服务来运行我的Drupal站点,还有一个用于数据库的任务:

代码语言:javascript
复制
drupalapp     mastermindg/rpi-apache2php7  
drupaldb      mysql:latest

现在,我可以在运行容器的任何节点上访问我的站点。

问题是,我只能在路由器上为端口转发设置一个IP地址,如果一个节点下降,那么该IP地址将无法再访问。

可以在覆盖网络上设置用于负载平衡的虚拟IP地址吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 23:37:06

Docker群使用网状网络,因此对单个主机的任何请求都将被路由到运行在哪个主机上。这里的困难之处在于,您的服务不是在入口运行的,所以世界无法使用它。为了使其可用,请使用HAProxy:

代码语言:javascript
复制
docker network create --driver overlay proxy
docker network create --driver overlay drupal
docker service create --name proxy \
    -p 80:80 \
    -p 443:443 \
    -p 8080:8080 \
    --network proxy \
    -e MODE=swarm \
    vfarcic/docker-flow-proxy
docker service create --name drupalapp \
    --network proxy \
    --network drupal \
    mastermindg/rpi-apache2php7
docker service create --name drupaldb \
    --network drupal \
    mysql:latest

因此,在这里您需要创建两个网络:一个用于drupaldb和drupalapp (称为drupal)之间的内部使用,另一个用于使用here公开您的端口。您的德鲁帕拉应用服务需要包括在代理覆盖网络以及drupal网络中。

注册您的HAProxy服务:

代码语言:javascript
复制
curl "$masterip:8080/v1/docker-flow-proxy/reconfigure?serviceName=drupalapp&servicePath=/&port=80"

现在,您的Drupal站点可以通过以下方式到达您群中的任何节点:

代码语言:javascript
复制
http://nodeX/index.php

现在的优点是您可以转发到任何节点,并且它将正确地解析。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39071626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档