我正在迁移部署在两个物理服务器上的遗留应用程序[web-app(node1)和DB(node2)]。
尽管以下博客满足了我的要求。但还有一些问题
https://codeblog.dotsandbrackets.com/multi-host-docker-network-without-swarm/#comment-2833
1-对于提到的场景web-app(node1)和DB(node2),我们可以使用暴露端口选项,而webapp将使用该端口,为什么要创建覆盖网络?
2-通过在复制品= 1的情况下使用swarm-mode,我们可以实现相同的目标,那么通过创建没有swarm模式的覆盖网络,我们将获得什么优势呢?
3-如果安装了consul的节点断开,则整个应用程序将无法正常工作。(如果理解错误,则是正确的)
4-在swarm模式下,如果管理器节点出现故障(也有webapp),我的理解是swarm将在可用主机上启动两个容器吗?如果我的理解不正确,请纠正我吗?
答案 0 :(得分:0)
该文章描述了“ Swarm”的过时操作模式。描述的是“ Classic Swarm”,它需要一个外部kv商店(如领事),但是现在Docker主要使用“ Swarm模式”(这是引擎本身内置的编排功能)。要回答我认为您的问题是:
我想您是在问,如果我们可以在主机上公开用于服务的端口,为什么我们需要覆盖网络?如果是这样,如果主机发生故障并且容器被重新安排到另一个节点,该怎么办?覆盖网络通过跟踪容器的位置并适当地路由流量来解决此问题。
不确定您的意思。
如果领事是下文发现的关键内容,那么是的,那将是单点故障,因此您需要运行它HA。这是使用“群模式”消除了对外部kv的依赖的原因之一。
不知道这是什么意思,但也许关于重新平衡?如果是这样,则是,如果主机(带有容器)发生故障,则这些容器将重新安排在另一个节点上。