数字化转型需要关注容器网络

  • 来源:计算机世界
  • 关键字:平台,需求,优势
  • 发布时间:2020-04-20 19:40

  容器在几年前就已经出现了,其可以在不同计算环境之间提供可靠的存储和应用程序交付。通过对应用程序平台及其附属项目进行容器化,操作系统发行版和底层基础设施中的差异可以被抽象出来。

  自由互助保险公司(Liberty Mutual Insurance)的IT架构师Michael Letourneau表示,网络已成为容器生态系统中的关键组件,其可为在相同主机和不同主机上运行的容器提供连接性。负责构建和运营Liberty Mutual容器平台的Letourneau表示:“将应用程序放入容器会自然而然地推动容器对网络连接的需求。”

  虚拟化演进

  容器网络是存储、计算和网络技术虚拟化发展的一部分。该技术始于十年前的PC/机器虚拟化。开源软件提供商,IBM子公司Red Hat的网络功能虚拟化技术总监Thomas Nadeau表示:“从很早开始,人们就意识到物理机的虚拟化在成本、速度和易开发性方面更具优势。”

  通过虚拟化,硬件资源可由虚拟机共享,每个虚拟机都包含有应用程序和完整的操作系统实例。例如,运行三个虚拟机的物理服务器会有管理程序,并在顶层运行三个独立的操作系统。支持三个容器化应用程序的服务器则只需要一个操作系统,每个容器可与其他容器共享操作系统内核。

  自身具有完整操作系统的虚拟机可能会消耗数GB的存储空间,而一个容器的大小可能仅为数十MB。因此,与虚拟机相比,单个服务器可以承载更多的容器,从而大大提高了数据中心的效率,同时减少了设备成本、维护成本、电力成本以及其他一些成本。

  遵循正确的容器网络方法对于长期成功至关重要。

  选择正确的容器网络方法在很大程度上取决于应用程序需求、部署类型、编排器的使用以及底层操作系统的类型。网络安全技术提供商Palo Alto Networks负责产品管理、容器和无服务器安全性的副总裁John Morello解释说:“目前最流行的容器技术都是基于Docker和Kubernetes,它们使用驱动程序的网络子系统都具有可插拔性。根据网络和部署类型,用户可为自己的环境选择最适用的驱动程序以处理容器到容器或容器到主机的通信。”

  Letourneau解释说:“由于可能会扩展大量的容器并管理临时容器,网络解决方案必须要能够满足企业的需求。”

  明确初始需求,确定满足这些需求的选项,然后实施解决方案,这一套流程与选择正确的编排代理配置和平衡容器负载同等重要。Letourneau说:“目前,选择一个基于Kubernetes的编排器是一个非常安全的决定。用什么作为网络层这一问题回答起来要更加复杂,因为它们不仅仅取决于规模,还取决于所需要的功能。”

  IP地址管理、DNS和DHCP服务提供商BlueCat Networks的高级集成架构师Chris Meyer认为,在向容器过渡时,关键是要创建一个由微服务组成的分布式体系结构,这些应用程序将组成松散耦合服务集合。他说:“通过微服务,人们可以获得一个容错性更高且更易于升级的应用程序。”

  Meyer说:“传统上,人们应当将每个容器当作普通的网络设备连接在一起,通过网络进行连接,并支付需要离开接口和再返回来的费用。”这里是网络发挥重要作用的地方。

  这样的方法带来了额外的复杂性,比如时刻要担心防火墙导致的问题。他说:“通过最新的容器网络技术,人们可以将容器连接在一起,使其看起来好像在同一接口上运行。这样做有一个巨大的好处,即架构的所有部分不仅可以轻松且快速地相互通信,而且还可以分布在不同数据中心的不同机器上。”

  桥接网络、覆盖网络、主机网络和Macvlan网络是一些常见的容器网络选项。

  桥接网络能够让运行在同一主机上的容器彼此相互通信,但是分配给每个容器的IP地址不能从主机外部访问。Docker的一个新实例带有默认的桥接网络,并且所有新启动的容器都会自动连接到它们。开箱即用的默认设置需要在生产中进行微调。自定义桥接网络启用的功能在默认模式下不是自动的,包括DNS解析在内。用户能够在运行时从自定义桥接网络添加和删除容器,并可在容器之间共享环境变量。

  覆盖网络适用于在不同主机上运行的容器,例如Docker swarm中的容器。在覆盖网络中,跨主机的容器可以自动找到彼此并通过网络子网在两个主机之间进行通信。企业不必为每个参与的容器都进行设置。生产系统通常需要创建一个自定义的覆盖网络。

  在主機网络中,主机网络驱动程序使得容器的网络堆栈可与主机上的堆栈并排运行。主机网络容器中端口80上的Web服务器可从主机本身的端口80获得。速度是主机网络的最大魅力,但是代价是牺牲了灵活性:如果将端口80映射到容器,则其他容器都不能在该主机上使用它们。

  Macvlan网络用于直接与底层物理网络配合使用的应用程序,例如网络流量监控应用程序。Macvlan驱动程序不仅为容器分配了IP地址,而且还为它们分配了物理MAC地址。Macvlan通常不会为不工作的应用程序而保留下来,除非它们依赖于物理网络地址。

  连接性不是唯一的考虑因素。容器网络的不同模式支持不同的联网功能。例如,桥接网络利用的是网络地址转换(NAT),这会带来性能成本。主机网络消除了对NAT的需求,但带来了潜在的端口冲突。在不同的网络方法中,一些功能也有所不同,其中包括IP地址管理(IPAM)、IPv6、负载平衡和服务质量。

  此外,企业还需要应对容器运行时编排器和插件的差异。例如,Docker和Kubernetes对于如何分配和管理网络资源有着不同的模型。与Docker的网络控件配合使用的基于Kubernetes的容器网络接口(CNI)插件可以帮助缩小差异。 CNI插件主要被设计用于将容器运行时与数十种不同的容器网络执行联系起来。

  容器网络入门

  考虑到正常运行的容器生态系统最终将成长起来并形成规模,因此制定详细的网络策略,提前为该技术做好准备非常重要。Letourneau说:“容器生态系统缺乏规划性的野蛮生长可能会让网络管理员感到头疼。”错误配置的容器编排解决方案可能会导致上游服务发生拒绝服务事件。

  在企业开始成长时,企业必须要制定自己的企业网络战略,对于不断发展的容器环境也是如此。Letourneau说,如果使用基于Kubernetes的业务流程解决方案,那么有很多CNI可以选择。“每种部署都有不同的功能和适用领域,这使得它们对于不同的用例有着不同的吸引力。”

  在从本地数据中心转向云服务提供商时,企业应该确定并评估其网络架构和目标,即使目前不打算采用容器技术也应做这些工作。Letourneau说:“云服务提供商网络与数据中心网络的集成可能会使未来由云服务提供商管理的容器解决方案面临复杂的网络。”

  老的网络问题

  容器的采用要求重新考虑企业的整个网络体系结构。Meyer说:“我们不能想当然地认为容器网络与传统网络相同,然后开始部署容器网络,因为那样的话,我们将无法用一种易于维护的方式将架构连接在一起。”

  例如,当有需求提出来后,老旧网络必须要手动进行修改(例如添加新服务器)。如果修改未能通过有效验证,那么很可能会发生中断。

  数据恢复服务提供商Sungard AS的首席技术官,高级架构师Greg Cox说:“传统的数据中心网络配置是作为物理设备上的静态配置实现的,因此如果服务器需要移动,那么则需要修改配置。修改验证要求IT部门对实验室进行大量投资,因为实验室需要配备昂贵的测量和监视设备。有了容器网络,修改和验证将成为一种自动化流程。”

  采用容器化策略并转向基于微服务的做法标志着传统数据中心操作和实践发生了重大变化。Letourneau说:“网络团队以往熟悉的是相对静态且不变的基础设施、已计划好的子网和标准的容量测量方法。DHCP和DNS要求则基于的是最终用户桌面,并且系统在设计时考虑了缓存和静态资源。”

  容器化可以有效地为数据中心清除工作负载占用的大量空间。他解释说,在容器生态系统中,网络配置和服务位置经常会定期修改,并且网络没有直接的人工控制。“這超出了‘软件定义的概念,属于由编排调度器算法管理的‘应用程序定义网络。”

  随着容器技术逐步被采用,许多技术和实践都已经过时了,网络团队将不得不适应大潮流并进行自我更新。由于容器网络主要是由软件控制的,因此IT员工需要摆脱日益陈旧的控件,并深入了解服务器系统和流程。服务器将流量封装并发送到需要的任何地方,这种封装使得在无需接触服务器实际所在的物理网络的情况下即可构建全新的网络架构。

  容器网络的出现让传统的网络管理和监视工具都已过时,这一事实导致传统网络又被进一步颠覆。Letourneau说:“可见性将受到限制,因为以前用于监视网络性能的工具不太可能能够帮助团队解决容器化生态系统中的问题。”

  网络安全问题

  形成网络的容器可以增强安全性,但是同时也可以打开新的危险之门。Morello说:“由于容器具有动态特性,因此必须部署一种可以自动学习微服务的联网行为并可完全让其具有可视性的安全工具,这一点非常重要。”

  容器的出现意味着技术堆栈和软件开发生命周期流程发生了巨大变化。这并不奇怪,因为企业面临的挑战不仅仅是确保系统正常运行,还要确保系统的安全。

  容器安全技术公司Aqua Security的战略副总裁Rani Osnat表示,容器网络打破了许多设想,例如使用传统防火墙和网络安全控制的想法。Osnat称,企业需要一种方法以控制入口和出口;对容器进行微分段,以防止应用程序相互干扰;拥有可以映射到容器连接而不是虚拟机连接的防火墙,以防止潜在的不安全的东西向网络穿越。

  由于已经认识到加强保护的需求正在不断增长,因此各种项目也如雨后春笋般涌现出来,其目标就是使安全性成为容器网络技术不可或缺的一部分。Letourneau举例称:“Cillium项目通过利用Berkeley数据包过滤器将安全策略注入网络层来提供低层级的安全性和可见性。”作为一种服务网格,Istio可解决分布式微服务架构一些与生俱来的挑战。

  尽管这两个项目都是相对较新的项目,但是它们提供了将安全层直接扩展到网络中的视图,这不是由单独团队中的网络管理员定义的,而是由实际构建服务和应用程序的团队定义的。

  从总体上看,容器网络领域正在迅速发展。Meyer说:“新事物一直在不断出现,这是一个值得关注的领域。最新的强大工具能够有助于简化向这种新范式的过渡,同时帮助具有前瞻性的企业使用这种新架构进行部署。”

  本文作者John Edwards 为资深商业技术记者,曾在《纽约时报》《华盛顿邮报》以及CIO、Computerworld、Network World、CFO Magazine、IBM Data Management Magazine、RFID Journal和Electronic Design等众多商业和技术刊物上发表过大量文章。

  John Edwards

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: