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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:
越来越多的人关注新型容器网络软件,来运行可扩展的云应用。就像我们看到的,网络可以通过很多方式连接到容器,尽管最终选择哪个容器还不确定,但是他们提供很多选项来满足不同的基础设施。

容器网络和传统的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日

本文作者:周南翻译

本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2天前
|
安全 Linux 网络虚拟化
关于容器云的三种网络设计
【2月更文挑战第9天】容器网络设计:隧道、路由、VLAN。
|
8天前
|
机器学习/深度学习 监控 算法
m基于深度学习网络的活体人脸和视频人脸识别系统matlab仿真,带GUI界面
m基于深度学习网络的活体人脸和视频人脸识别系统matlab仿真,带GUI界面
13 0
|
23天前
|
运维 监控 数据可视化
Linux系统调优详解(六)——网络状态查看命令nload
Linux系统调优详解(六)——网络状态查看命令nload
42 5
|
26天前
|
消息中间件 监控 NoSQL
容器化应用系统上生产的最佳实践
容器化应用系统上生产的最佳实践
|
28天前
|
机器学习/深度学习 传感器 算法
基于yolov2深度学习网络的打电话行为检测系统matlab仿真
基于yolov2深度学习网络的打电话行为检测系统matlab仿真
基于yolov2深度学习网络的打电话行为检测系统matlab仿真
|
1天前
|
机器学习/深度学习 算法 计算机视觉
m基于深度学习网络的性别识别系统matlab仿真,带GUI界面
m基于深度学习网络的性别识别系统matlab仿真,带GUI界面
11 2
|
6天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的喝水行为检测系统matlab仿真,带GUI界面
m基于Yolov2深度学习网络的喝水行为检测系统matlab仿真,带GUI界面
10 0
|
18天前
|
算法
m基于Faster-RCNN网络的人员摔倒检测系统matlab仿真,带GUI操作界面
m基于Faster-RCNN网络的人员摔倒检测系统matlab仿真,带GUI操作界面
20 9
|
1月前
|
前端开发 安全 JavaScript
【网络安全 | 网安工具】御剑WEB指纹识别系统使用详析
【网络安全 | 网安工具】御剑WEB指纹识别系统使用详析
26 0
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的喝水行为检测系统matlab仿真
基于yolov2深度学习网络的喝水行为检测系统matlab仿真

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版