处理Docker网络功能问题的挑战与思考。在过去的一年里,Docker容器方案中的网络功能迎来了一系列的长足进步。同时,Docker还建立了插件化架构,允许开发者引入更高级的网络管理工具,实现容器控制。另一方面,不少初创企业也开始打造定制化的容器管理平台,以思科、VMware为代表的传统厂商也开始在自家网络管理工具中加入容器控制能力。因此,早期出现的各种容器网络挑战已经开始得到解决,尽管必须承认我们离理想的最终目标还有很长的路要走。基本挑战容器网络的问题似乎是永恒的,无法根除。托管在同一物理服务器上的容器系统相互交互并共享数据。但是Docker开发人员最初并没有提供将一组容器从一台主机迁移到另一台主机,或者将一组容器连接到另一台主机上运行的其他容器的必要功能。“最大的挑战主要是在跨容器通信层面,”技术分析师兼博主KeithTownsend指出。“从一套容器到另一套,大多数网络专业人士在实施过程中会遇到职业生涯中最严重的障碍。”作为同名开源容器项目的开发者,Docker中的工程师和技术人员已经意识到了这个问题并开始着手解决。内置电池,支持更换正是因为网络问题的存在,Docker在2015年3月收购了初创公司SocketPlane,后者的主要业务是以原生的方式为Docker添加软件定义的网络功能.今年6月,Docker宣布将SocketPlane技术整合到其开源项目中。新的网络功能使用基本的Linux桥接机制和VXLAN(VirtualExtensibleLAN)让容器可以与同一个Swarm中的其他容器进行通信——顺便说一句,所谓Swarm是指Docker专用的容器集群描述名称。这解决了跨主机容器网络问题。与此同时,Docker还发布了libnetwork,这是其旗下另一个开源项目的代号。该项目允许第三方网络管理工具“插入”以替换Docker中的内置网络功能。以VMwareNSX、CiscoACI为代表的多款虚拟网络产品成为首批支持的解决方案。“它建立了一个抽象层,”Docker产品高级副总裁ScottJohnston说。“这是一个3层网络覆盖系统,允许容器连接到它。”Docker目前有两种网络管理方式。一种是原生方式,即开箱即用,Docker支持——得益于SocketPlane的收购,Docker已经有了自己的一套跨主机容器连接机制。如果用户需要更高级的网络功能,例如以编程方式建立网络、设置网络策略、安装防火墙、添加负载平衡解决方案或其他虚拟应用程序,那么他们可以选择多种网络管理产品。Docker公司将其解决方案描述为“内置电池,支持更换”。Johnston指出,他希望未来能够实现类似的容器存储插件实现模式。技术是最容易解决的问题Docker产品高级副总裁ScottJohnston指出,就容器网络而言,技术是最容易解决的问题。事实上,这些技术能力是最容易解决的部分,约翰斯顿说。让开发人员在容器中构建应用程序并让IT部门使用它们是更大的挑战。容器化应用程序具有与传统企业应用程序截然不同的特征。过去,IT部门的目标是提供不会出错的弹性系统,但现在他们的首要任务已经变成了想方设法提供高度灵活的网络系统,可以实时调整容量和敏捷性。“从网络的角度来看,应用程序交付和性能水平与网络基础设施实际支持这些新型应用程序和用例的程度有关,”思科云基础设施服务首席技术官KenOwens解释道。“网络工程师的作用是思考可编程网络、软件定义网络和网络功能虚拟化的进步如何在这方面发挥积极作用。”这些工具允许自动配置网络资源——而不是像过去那样手动完成——这很可能在不久的将来成为真正的市场拉力,并推动采用这种应用程序范式的企业客户决定使用新的以上机制权衡利弊后。原文链接:AguidetoDockercontainernetworking【翻译、合作站点转载请注明原文译者和出处为.com】
