【问题标题】:Can I use host network for docker stack deployment in a Docker Swarm cluster我可以在 Docker Swarm 集群中使用主机网络进行 Docker 堆栈部署吗
【发布时间】:2020-12-20 20:14:48
【问题描述】:

我可以使用主机网络在 Docker Swarm 集群中部署 Docker 堆栈吗?基本上我想为 Docker Swarm 中的所有容器分配主机 IP 地址。

【问题讨论】:

    标签: docker docker-swarm docker-stack


    【解决方案1】:

    即使您可以在子网内的 ip 范围内创建 Swarm 感知 macvlan(请参阅:collabnix blog post),这将允许服务从该范围获取 ip,但 Swarm 不支持为 swarm 设置固定 ip服务或其任务(=容器)。

    您可以使用 macvlan 运行 Swarm 并在声明的 ip-range 中使用随机 ip,或者您在没有 Swarm 的情况下使用带有 macvlan 的普通容器,这允许在声明的 ip-range 中使用固定 ip。

    我已经在容器化环境中工作了大约 6 年了,在必要时既没有 macvlan,也没有固定的容器 ip。

    ...通常人们试图将旧模式从 vm 世界强制执行到容器世界最终会认为他们需要这个作为解决方案,尽管很可能有一个更好、更类似于 docker 的解决方案来解决问题域。

    【讨论】:

    • 谢谢@Metin。我有一个托管在 AWS 上的 Docker Swarm 集群,我正在尝试在 docker swarm 中设置一个 druid 集群。我在 Swarm 中运行具有 3 个副本的服务。该服务以主从模式运行。因此,每当我通过浏览器或 python 客户端向该服务提交请求时,它都会将请求重新路由到其他节点。因此,我的客户端尝试连接到 swarm 中的容器 ip,但永远无法连接到该服务。每当我将此服务缩减为仅 1 个副本时,一切正常。试图弄清楚如何使用多个副本连接到此服务。
    • 我不知道德鲁伊的点点滴滴是如何工作的。不过,通过简要查看架构图,我建议检查一下代理组件的所有副本是否共享它们的状态,并且可以为它们配置一个公共 uri/主机名。
    • 是的,我明白了。我的问题更多是关于如何处理 docker swarm 中发生内部重新路由的场景以及外部客户端如何连接到此类服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多