容器网络方面的挑战和要求

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

在最近于加拿大温哥华召开的OpenStack峰会上,6000多名与会人士接受了使用容器情况方面的调查。被问及是否在生产环境中有容器时,台下一小部分听众举手示意――据我估计大概有5%。但是被问及谁在接下来几年考虑将容器迁移到生产环境时,几乎人人都举手。

这一幕生动地表明,虽然容器是一项现处于早期阶段的技术,但众多企业组织为它制定了宏伟计划。由于Docker和Kubernetes等多种选择,用户们在认真考虑自己的选择道路。容器提供了几个明显的优势:简化和加快了应用程序的部署、可移植性以及占用少量的资源,但是也存在风险。

 容器网络方面的挑战和要求

一大风险就是整合。开源社区正在考虑如何将容器整合到现有的云和自动化框架当中,比如Magnum和几个OpenStack项目。另一个问题就是容器网络。用户们常常问我如何设计一套同时支持容器和虚拟机的网络解决方案。虚拟机和容器(以及部署的裸机系统)通常带来了全然不同的网络模型。

不妨后退一步,考虑一下如今的容器网络是如何工作的。容器网络基于一种简单的架构,主要是单主机解决方案。比如说,Docker网络模型基于几个简单的假定:

•它充分利用与容器相连接的本地(每个主机里面的)Linux网桥。

•每个计算节点都有集群看得见的IP地址。

•每个容器都有集群看不见的专有的IP地址。

•网络地址转换(NAT)协议用来将容器的专有IP地址绑定至计算节点的公共IP地址。

•此外,负载均衡系统可用来将服务映射至一组IP地址和端口。

•iptable用于应用程序与租户之间的网络分段和隔离。

如果运用到容器网络上,这种模型在许多方面显得不尽如人意。它限制了用容器构建的多租户云解决方案跨多个主机进行扩展的功能。高可用性方面的配置很有限。无论工作负载的移动性如何,一致的连接性和安全性也成问题。另外,iptable和NAT的结合使用限制了可扩展性和性能,这让使用容器的主要优势之一荡然无存。

那么,面向容器的网络解决方案应该提供什么呢?另外,你又该如何评估解决方案与特定应用程序的契合度?我们不妨把这分成三个问题;这些答案应该可以帮助你更深入地了解容器网络方面的独特之处。

1. 你会在基于容器的基础设施上运行哪种类型的应用程序?

这直接影响到你网络基础设施的蓝图以及如何构建网络基础设施。你的应用程序需要丰富的网络拓扑结构以及高级服务吗?它们是多租户模式,还是简单的“扁平网络”就足以胜任?

面向容器的虚拟网络解决方案让最终用户(租户)和云操作人员都可以定义并控制各自的网络要求。解决方案还必须提供跨多个物理主机的微分段(micro-segmentation)和隔离所需要的构件。

2. 性能和可扩展性方面的要求是什么?

你在思考这个问题时,要考虑基础设施上应用程序的要求。应当考虑这样的解决方案:在一种完全分布式的架构中提供隔离和网络功能,从而为你应用程序的发展和扩展铺平道路。随着部署的云越来越庞大,网络解决方案应该跨多个物理主机向外扩展,还应该在云编排框架里面紧密地整合起来。

3. 你需要将容器与虚拟机和裸机工作负载互联起来吗?

大多数应用程序需要用容器支持混合工作负载,所以要寻求同时支持两者的解决方案。一致的抽象模型(网络、子网、路由器、接口和浮动IP地址)和一套用于配置和自动化的一致的API,是完成这项工作的方法。

云用户呼吁面向任何工作负载的网络模型与功能强大的网络抽象结合起来,从而简化容器到容器的联系,并且增添先进的网络功能和微分段。

作者:布加迪


来源:51CTO

相关文章
|
4月前
|
存储 Linux 容器
【Container App】在容器中抓取网络包的方法
本文介绍在Azure Container App中安装tcpdump抓取网络包,并通过Storage Account上传抓包文件的方法。内容包括使用curl和nc测试外部接口连通性、长Ping端口、安装tcpdump、抓取网络包、以及通过crul命令上传文件至Azure Storage。适用于需要分析网络请求和排查网络问题的场景。
172 1
|
5月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
11月前
|
人工智能 弹性计算 运维
ACK Edge与IDC:高效容器网络通信新突破
本文介绍如何基于ACK Edge以及高效的容器网络插件管理IDC进行容器化。
|
6月前
|
网络协议 Docker 容器
使用网络--容器互联
使用网络--容器互联
153 18
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。
|
6月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
218 0
|
12月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
358 61
|
11月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
1055 7
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
609 1
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程