耗尽的 Docker Swarm Manager 节点是否仍参与路由网格(入口网络)?

Does a drained Docker Swarm Manager Node still participate the routing mesh (ingress network)?

只是想知道一个耗尽的管理器节点是否仍然参与 described routing mesh

让我们假设 node3 已耗尽。 my-web.1 服务是否仍可通过 HAProxy -> node3 -> my-web.1 访问?

当一个节点耗尽时,其上的所有现有任务 运行 都将停止并在 ACTIVE 个节点上 运行。此外,被耗尽的节点将无法从 swarm 管理器接收新任务。

但是,耗尽的节点仍然参与路由网格,您的服务 my-web.1 仍然可以从 node3 访问。 参考:https://docs.docker.com/engine/swarm/swarm-tutorial/drain-node/

以下是我为确认该行为所做的工作:

  1. 为一个简单的 Flask 应用程序创建了一个包含 3 个副本的服务。我运行这里有两个节点。
  2. 任务分布在两个节点上。我可以从两个节点的 IP 地址访问我的烧瓶应用程序。
  3. 我已将其中一个节点的可用性设置为DRAIN,其中的所有flask app任务都停止并在另一个活动节点上创建。
  4. 我仍然可以从漏节点的IP地址访问flask应用程序。此外,服务日志显示来自耗尽节点 IP 地址的请求。