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

本文涉及的产品
容器镜像服务 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

相关文章
|
网络协议 Unix Android开发
android emulator虚拟设备分析第五篇之pipe上的opengles
一、概述 据说qemu的gpu的实现,运行起来非常慢。所以android emulator提供了一种use host gpu的方式,guest os可以使用host机器的opengl库去画图,速度快很多。
3377 0
|
9月前
|
缓存 安全 Java
Spring高手之路26——全方位掌握事务监听器
本文深入探讨了Spring事务监听器的设计与实现,包括通过TransactionSynchronization接口和@TransactionalEventListener注解实现事务监听器的方法,并通过实例详细展示了如何在事务生命周期的不同阶段执行自定义逻辑,提供了实际应用场景中的最佳实践。
274 3
Spring高手之路26——全方位掌握事务监听器
|
9月前
|
算法
超市火灾烟雾蔓延及人员疏散的matlab模拟仿真,带GUI界面
本项目基于MATLAB2022A开发,模拟了大型商业建筑中火灾发生后的人员疏散与烟雾扩散情况。算法通过设定引导点指导人员疏散,考虑视野范围、随机运动及多细胞竞争同一格点的情况。人员疏散时,根据是否处于烟雾区调整运动策略和速度,初始疏散采用正态分布启动。烟雾扩散模型基于流体方程,考虑了无风环境下的简化。
160 10
|
9月前
|
传感器 人工智能 资源调度
智能Agent与灵活调用的背景
本文介绍了智能Agent的基本概念及其灵活调用的实现方式,通过具体代码示例展示了如何设计具备灵活调用能力的智能Agent系统。文章首先阐述了智能Agent的定义、特点及分类,接着详细解释了灵活调用的意义、目标及其实现步骤。最后,探讨了灵活调用在实际应用中的挑战及未来的发展方向。
|
9月前
|
存储 关系型数据库 索引
什么是聚簇索引及其优缺点?
聚簇索引是InnoDB存储引擎中的一种数据存储方式,通过主键构建B+树,叶子节点存储整行数据。主键索引即为聚簇索引,若无主键则选择非空唯一索引或隐式创建主键。非聚簇索引(辅助索引)的叶子节点存储主键值,访问数据需两次查找。聚簇索引优势在于数据访问速度快,尤其适合主键的排序和范围查询;但插入和更新操作成本较高,建议使用自增ID作为主键。
250 6
|
9月前
|
JavaScript 前端开发 API
二、ArkTS 快速入门
ArkTS 是鸿蒙生态的应用开发语言,继承了 TypeScript 的语法,扩展了声明式 UI 开发能力。它支持状态管理、自定义组件、并发编程等特性,提高了代码的健壮性和运行性能。本文介绍了 ArkTS 的快速入门,包括声明式 UI、基本组成、@State 装饰器、组件声明和自定义组件等内容。
656 1
|
9月前
|
移动开发 缓存 前端开发
深入理解前端路由:原理、实现与应用
本书《深入理解前端路由:原理、实现与应用》全面解析了前端路由的核心概念、工作原理及其实现方法,结合实际案例探讨了其在现代Web应用中的广泛应用,适合前端开发者和相关技术人员阅读。
|
9月前
|
缓存 Java 数据库连接
MyBatis缓存机制
MyBatis提供两级缓存机制:一级缓存(Local Cache)默认开启,作用范围为SqlSession,重复查询时直接从缓存读取;二级缓存(Second Level Cache)需手动开启,作用于Mapper级别,支持跨SqlSession共享数据,减少数据库访问,提升性能。
151 1
|
10月前
|
运维 Kubernetes Shell
【赵渝强老师】K8s中Pod的临时容器
Pod 是 Kubernetes 中的基本调度单位,由一个或多个容器组成,包括业务容器、基础容器、初始化容器和临时容器。临时容器用于故障排查和性能诊断,不适用于构建应用程序。当 Pod 中的容器异常退出或容器镜像不包含调试工具时,临时容器非常有用。文中通过示例展示了如何使用 `kubectl debug` 命令创建临时容器进行调试。
180 1
|
10月前
|
机器学习/深度学习 搜索推荐 人机交互
智能语音交互技术的突破与未来展望###
【10月更文挑战第27天】 本文聚焦于智能语音交互技术的最新进展,探讨了其从早期简单命令识别到如今复杂语境理解与多轮对话能力的跨越式发展。通过深入分析当前技术瓶颈、创新解决方案及未来趋势,本文旨在为读者描绘一幅智能语音技术引领人机交互新纪元的蓝图。 ###
525 0