容器网络:专为开发人员设计的SDN系统

越来越多的人关注新型容器网络软件,来运行可扩展的云应用。就像我们看到的,网络可以通过很多方式连接到容器,尽管最终选择哪个容器还不确定,但是他们提供很多选项来满足不同的基础设施。

容器网络和传统的SDN有什么区别?

SDN系统还处于发展阶段。它经常被创建为物理网络的逻辑版本,通过抽象的端口、网络或子网,又连接到逻辑网络交换机,并且连接到虚拟机上。作为服务项目的OpenStack网络Neutron和其它SDN软件,都支持这一概念。这对那些使用虚拟机的人来说有很多优势,因为他们的工作负载可以镜像到物理服务器上。虽然虚拟机更容易和配置物理机来对比,但他们和现在基于容器的计算相比,相对来说更稳定。随着微服务系统的发展,很多容器都可以被动态配置并迅速删除,所以用户需要一种可以容纳这种情况的网络系统。

关于容器网络的基础知识以及其局限性

从根本上来说,一个和网络相关的容器,反过来,可能也会桥接到网络接口。这也是默认情况下Docker网络系统做的事情,但在实际使用时又显得差强人意。它的局限性在有多个主机的时候会更为严重,因为不同主机上的容器之间不能通话,或者它可以用于容器管理或Kubernetes这种业务流程系统。Docker推出了一个叫libnetwork的新的多主机容器网络架构,可以解决这些问题。

Kubernetes

Kubernetes允许网络在pod中实现服务器部署,是应用程序和容器共享资源的集合。每个pod都被分配一个IP地址,和传统系统不一样,传统系统是每个服务器或虚拟机被分配一个IP地址。Pod不是一个容器,而是容器的集合。相反,容器和端口的协调可以确保应用程序之间相互通信。

这就回到了如何设计并部署应用程序的问题上。APP在容器中部署,反过来在pod中运行,这些APP具有高可用性,并能随时处理故障。相反,在传统的虚拟环境中,还要时刻关注虚拟机,以免出现故障。这就体现了在应用程序负载设计和基础设施运营方面的差异性。

新型SDN系统

传统的SDN架构已经逐步发展成为支持容器部署。像OpenStack或者vSphere这种orchestration架构系统最初是用于虚拟机的,但是现在已经用于运行容器。举个例子来说,Kuryr项目可以把Docker网络映射到OpenStack
Neutron网络。VMware的NSX还支持容器部署。当然,这些为了适应容器网络的调整需要保护现有基础设施中的投资。

但是,新的SDN架构是这种情况外的兼容容器的架构。这些新系统对APP开发人员最有用处,因为它不用顾虑低层网络基础设施,而是创建了一个简单视图网络。开发人员关心连通性,但是不太关心传统概念,比如2层网络。3层IP地址对他们来说就足够了,新的SDN系统就专门提供这些。他们可以简化配置,加快部署。

案例

下面是一些新的开源网络系统的例子:


Calico:Calico是一个第3层虚拟化网络服务,它使用内置的Linux网络和BPG协议并基于IP
tables做转发,在数据中心中共享路由,不依赖任何硬件,只在网络中进行。这个系统可以运行多种平台,比如OpenStack、Docker和Kubernetes。
• Contiv:Contiv是把应用程序与基础设施的业务决策联系起来的一个项目。可用于Docker网络和存储容量的插件。
• CoreOS Flannel:Flannel是针对容器网络设计的覆盖SDN系统。它使不同主机上的容器就像在同一主机上一样相互通信。
• Weaveworks Weave Net:Weaveworks Weave Net是一个针对容器设计的覆盖SDN,可用于多个平台,并可跨主机工作。它提供自动发现服务,避免端口映射。使构建多个容器组成的应用程序变得更简单。

这些系统之间如何关联?

其实,想知道这些系统之间是如何联系的很难,但所幸的是,开发人员在设计的时候把很多都合并了。像Docker这种基本的容器系统都有一个默认的实现机制,运行在盒子外面,电池是内置的,但是插件可能会用于改变功能,电池可更换。这就类似于OpenStack的Neutron,也是利用插件。

网络是所有容器结合在一起的粘合剂,但是早期很难运用。这些新的SDN系统还有待提高,但真的值得探索。开发和生产团队可以利用它们来简化新的基于容器的应用程序的网络基础设施。根据不同的系统,它可以简化安全性、多数据中心部署等工作。

我建议企业检查新的开源项目,它可以简化并提高开发和运营团队的工作效率。虽然不容易拆封,但是值得一提的是,它常常有专业的公司在背后做指导。

原文发布时间为:2016年01月22日

本文作者:周南翻译

时间: 2022-11-27

容器网络:专为开发人员设计的SDN系统的相关文章

急求《网络嗅探器的开发与设计》毕业论文!

问题描述 本人今年毕业了,做的是<网络嗅探器的开发与设计>,现在急需一篇论文,其中要求如下:要有开发设计的思路,设计流程图,功能模块图,主要函数的介绍,sniffer的测试过程等.希望朋友们能够伸出援助之手! 解决方案 解决方案二: 解决方案三:好心的朋友,请把现成论文发到我的邮箱,lipeng7943@163.com,多谢了!解决方案四:一楼的朋友,你给的网站没有具体的功能模块图和设计流程图啊,而且字数明显也不够啊!如果哪位大哥可以解决我的难题,我将重谢,时间紧迫啊!解决方案五:当年我也做这

十五套专为开发人员打造的PHP资源库(1)

最近一段时间以来,PHP作为一款高效服务器端编程语言,开始在Web开发领域掀起又一股热潮.大家可能想象不到,根据2013年1月发布的一份调查报告显示,PHP语言已经被安装在全球超过2.4亿个网站以及210万台Web服务器之上.PHP的全称为"超文本预处理器",而且主要用于创建动态网络页面.不过,PHP还有着其它多种用途,并因此在开发人员群体及大规模企业当中拥有着极高人气.随着相关技术在各个领域的不断发展,PHP开发人员目前拥有非常旺盛的市场需求. PHP被用于在服务器之上托管Web服务

C#.Net网络Socket程序开发

Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要.

探索PaaS开发人员可以使用的IaaS交付服务

在本文中,将会了解 PaaS 可使用哪种交付服务,应该考虑使用哪个层级的多防御机制来更好地保护 IaaS, 防止云滥用. 在一个云岛上,PaaS 开发人员通常在博客上和 IaaS 网络专家讨论开发人员使用 IaaS 虚拟机的不同方法.有一天,开发人员无法运行和测试一个应用程序.他抱怨说,当他发现的时候已经太晚了,虚拟机的容量已不足以处理突然增加的大数据量,这些数据是满足日益增长的合规性需求所必需的. 该 PaaS 开发人员并不能控制虚拟机,所以他立刻通知 IaaS 专家,要求他增加虚拟机的容量.

IE9开发人员工具“网络捕获”功能详解

在IE7时代,微软推出了一款叫做"开发人员工具"的工具栏,下载安装之后,可以在IE中更方便的分析HTML代码,了解网页中各个元素的属性.样式等信息,对开发人员调试网页来说特别方便.由于这个功能让IE除了可以浏览之外,还可以很好的进行调试,因此,"开发人员工具"顺利的成为了IE8中的一个内置功能,用户可以在浏览网页时按F12直接调出它来使用. 到了如今的IE9,这个工具的功能又进行了增强,新设计了一个"网络"选项卡.通过它,我们就可以捕获浏览器打开

Jim Rapoza列出网络开发人员的错误

第一.点击,点击,再点击-这太好了,有人来到你的网站,他们要进行采购.他们开始了,点击一次,二次,三次,再来一次!接下来-,他们走了.也许如果他们没有立即去他们要去的地方,你也许会做成一笔交易. 第二.仅点击魔力罗盘就行-新的网络技术能够增加许多新的导航功能和互动技术,这是很好的.但是,不要把访问重要功能和内容的接入点放在奇怪的图形或者标识后面.人们知道链接是如何在网页上工作的.有些标识可能就是恶作剧的. 第三.不要有太多的图片-下面的网络内容包含大量的影像文件和图片文件,这种网页对于没有高速互

以开发人员方式交付设计

本文讲的是以开发人员方式交付设计, 长标题:像在开发环境中搭建 UI 一样在 Sketch 中设计 首先,这将是本文中唯一一次提到 Photoshop.现在是 2017 年了,为自己好,去下载 Sketch(或者 Figma - 只要不是 Photoshop 就行) 用吧. UI 设计已经有了长足的发展,图像处理程序也是如此(如果你现在还这么称呼它们的话).仍记得在 GIMP 中创建我们的第一套 UI 时的场景,现在,有了 MacBook,我们可以用 Sketch 完成几乎所有与 UI 相关的所

RESTful API设计给开发人员带来怎样的未来?

业界正在逐渐承认RESTful API优于面向服务架构.但是这对于架构师和开发人员而言到底意味着什么?Tom Nolle分享了他的想法. 在模块化应用世界里,最为持久的争论莫过于面向服务架构和表述性状态转移之争了.本文探讨这样的争论带来了什么及其背后的原因. SOA已经被定性为连接组件和工作流的严格的且重量级的方案,REST则赢得了更多的赞誉.两者的特征都是简化,但是要学习RESTful API设计,架构师和开发人员必须理解SOA和REST之间的差异,学习REST和云以及微服务一起的演进,并且了

(译)开发人员经常犯的8个设计错误

设计师在抱怨开发人员不尊重Web标准,后台开发人员在抱怨为什么不可以增加一个空格.PM在抱怨为什么项目总是因为那些看似简单的问题而延期--如何才能提高后台开发人员与设计师以及前端开发工程师的合作效率?相信很多网站或软件开发公司都越到类似的问题. 从UED的角度而言,我们的天职是追求用户体验.我们应该尽力坚持自己应该坚持的东西.白鸦曾经说过,用户体验不只是UED的事情,而是整个开发团队乃至整个公司需要参与的事情. 我们不能只是抱怨,我们去理解开发人员.同样,我们做出努力,让开发人员去理解我们. 我