Docker容器网络指南
尽管媒体对容器技术存在大肆宣传,但是,应用程序打包技术仍在不断发展之中,特别是与网络有关的。
在过去的一年里,虽然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容器网络指南