尽管媒体对容器技术存在大肆宣传,但是,应用程序打包技术仍在不断发展之中,特别是与网络有关的。
在过去的一年里,虽然 Docker 容器自身在网络功能方面有着长足的进步。但与此同时, Docker 也构建了一个插件架构,允许更先进的网络管理工具控制容器。
同时,众多创业公司也已经开发出定制的平台来管理容器,而传统的供应商,如思科和 VMware 使他们的网络管理工具控制容器。因此,最初的容器网络挑战开始得到解决,但还有更多的工作要做。
一直都存在容器网络问题。容器托管在相同的物理服务器上可以相互作用和共享数据。但 Docker 开发者最初没有能力将容器从一个主机迁移到另一个主机,或在不同的主机上将一个容器到另一个容器建立连接。
“跨容器通讯一直是最大挑战,”技术分析师兼博客作者 Keith Townsend 说。“从一个容器转移到另一个,这是大多数网络专业人员会遇到的最大的挫折。”
Docker 的工程师很快意识到他们需要解决这个问题。
网络问题导致 Docker 在 2015 年 3 月启动收购了 SocketPlane ,它旨在为 Docker 带来本地软件定义网络功能。今年 6 月, Docker 宣布 SocketPlane 技术集成到开源项目。新的网络功能使用基本的 Linux 桥接功能和 VXLANs 允许容器在相同的 Swarm 中与其他容器通讯。跨主机的容器网络问题已经解决。
同时, Docker 也发布了 libnetwork ,一个开源项目允许第三方网络管理产品“插入”来取代内置的 Docker 网络功能。虚拟网络产品 VMware 的 NSX 、思科的 ACI 等 6 个项目是第一批被支持的第三方网络工具。
“它设置一个抽象体, Docker 产品高级副总裁 Scott Johnston 表示。“这是一个允许容器附属于它的第三层网络。”
Docker 现在有两种类型的网络管理。有本地,开箱即用功能,这要感谢 Docker 收购的 SocketPlane ,它允许跨主机网络。但是,如果用户想要更多先进的网络功能,如新网络编程,设置网络策略、安装防火墙、负载平衡器和其他网络上的虚拟应用程序,那么可以使用各种各样的网络管理产品。 Docker 将其称为“ batteries included , but swappable (内置电池,但是可更换)。" Johnston 说,他希望容器存储不久也有一个类似的插件模型。
Docker 产品高级副总裁 Scott Johnston 说,当涉及到容器网络,技术总是比较容易的部分。
Johnston 说,这些技术能力是比较容易的部分。而让开发人员在容器中构建应用程序并且与 IT 商店达成共识则是更大的挑战。
容器的应用已经与传统的企业应用程序有着非常不同的特点。在过去, IT 的目标是提供持续的弹性系统,但是,现在的首要任务是提供瞬动能力和敏捷、灵活的网络。
“从网络的角度来看,应用程序交付和性能是网络基础设施能否很好的支持这些新的应用和用例至关重要的层面,”思科的云基础设施服务的首席技术官 Ken Owens 说。“网络工程师的角色是思考诸如可编程网络和软件定义网络,网络函数虚拟化如何帮助 IT 系统。”
这些工具允许自动配置网络资源,而不是手动配置——这可能很快就会成为那些真正拥抱这些新的应用程序范例企业的桌面上赌注。
本文由时速云工程师张鹏程编译,转载请注明出自时速云。原文链接:Docker 容器网络指南
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.