【问题标题】:Is swarm required for using multi-host networking feature using overlay in docker在 docker 中使用覆盖层使用多主机网络功能需要 swarm
【发布时间】:2016-04-25 22:15:02
【问题描述】:

我已经完成了getting started overlay 的示例,并且我有一个简单的查询。是否可以在不创建swarm cluster 的情况下使用覆盖来使用多主机网络功能?我不想使用 weave 等第三方插件。我想为此使用 docker 原生网络支持。

我有 3.16+ kernel 运行 RHEL 和 docker 1.9

【问题讨论】:

    标签: linux networking docker docker-swarm


    【解决方案1】:

    是的,有可能:请参阅“Lab 6: Docker Networking”。
    覆盖网络的关键部分是发现服务,例如Consul

    覆盖网络需要键值存储。
    存储维护有关网络状态的信息,包括发现、网络、端点、IP 地址等。 Engine 支持 Consul、etcd 和 ZooKeeper(分布式存储)键值存储存储。

    文章“Docker Networks: Discovering Services on an Overlay”对当前的服务发现工具进行了一些批评,这些工具不是为单个容器注册或发现而构建的。

    Overlay 在后台使用 KV 存储对网络拓扑进行建模并启用跨主机容器到容器的通信。它不提供SRV record 分辨率。

    问题在于,在覆盖网络中,每个容器都有自己的 IP 地址。
    因此,您可以完成这项工作的唯一方法是在网络上提供服务的每个容器内运行 Consul 代理。这对开发者来说肯定是不透明的,或者与现成的图像不兼容。

    【讨论】:

    • 感谢@VonC。我不知何故不知道 github 上的此文档可用性。 :-)
    • 还有一个疑问@VonC,我们不能在要运行集群容器的节点之一上启动KV 存储映像(zookeeper 等)吗?
    • @AnkitKumar 是的,你可以。不要忘记使用正确的选项(github.com/docker/dceu_tutorials/blob/…)重新启动 docker。该节点需要其他人可以访问。不过,最好将其单独保存在自己的节点上。
    猜你喜欢
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多