容器和云给网络带来巨大的压力

简介:

鉴于开发人员已经开始采用敏捷、方便的可编排技术,因此会越来越多地采用基于容器的应用程序。但是当这些应用程序进入生产阶段时,他们的编排解决方案对操作复杂性产生了相当大的影响。DevOps成功的最大障碍之一仍然是复杂性,Quali Survey进行的调查中显示,11%的受访者认为自动化相关的挑战以及云计算系统的编排是影响DevOps成功的障碍。

这种复杂性部分来源于将应用程序分解成“微服务”的模块,每个微服务本身都是一个可扩展性域,需要负载均衡和安全以及网络支持。随着容器部署越来越多,这些主要的基于软件的解决方案需要大量的容器内和集群内通信,增加了东西向流量的数量和频率。规模化应用的传统网络托管解决方案(负载均衡等)必须适应,不仅仅是通过软件提供功能,还要通过解决相对极端的需求来跟上基于容器环境的极端动态性质。

为此,出现了一种独特的架构模式,轻量级负载均应用程序代理驻留在容器集群中,以便于扩展和协助服务之间的集群内路由。当应用程序分解时,其内部通信模式转变成外部通信模式,并且必须通过网络而不是在应用程序内部进行。这带来了复杂性以及规模的需求,随后通过纳入东西向集中的负载均衡代理来解决这个问题。

架构方面,在应用层面上仍然存在规模化,这需要在南北向网络纳入能提供规模、性能和安全性的上游业务。通常由应用交付控制器(ADC)或其他负载均衡代理(软件或硬件)提供,并且促进用户、事物和集群外部的应用程序之间的通信。

无论是Kubernetes还是Mesos或OpenShift,容器集群解决方案都适用这种模式。带来的额外的复杂性以及对代理提供的不仅仅是传统功能的需求,还支持应用程序接口(API)调动,基于软件的模型、容器、云和应用程序正在不断构建。

云也在不断发展,新兴的计算模式是无服务器模式,或称为功能即服务(FaaS),该模式假定比云或容器性能更加优秀,按要求但不按需调用资源。支持网络对这种环境的响应的能力对于这些模式在实现其预期收益方面的成功至关重要。

为了应对这些挑战,网络必须一如既往地满足速度需求。但是,速度并不是目前唯一的关注点,负载均衡服务更新资源池的速度至关重要。这给负载均衡服务带来了压力,必须确保其API具有与其核心功能相同的可扩展性和性能,对于服务集群内通信的解决方案的微服务和应用程序之间的东西向流量尤其如此。

必须从网络方面整合到由Kubernetes,Mesos和OpenShift编排的集群内容器的自动化和编排中。不再是网络负责人,要求其他人配置更改。假设网络将根据管理、调度和编排容器生命周期的集群主节点提供的信息自动调整配置和行为。为此,像负载均衡这样的服务必须能够监控并了解集群活动的各种标签和消息,并对这些作出反应。例如,当Kubernetes宣布推出新的容器时,负载均衡器需要识别事件并通过调整配置进行响应。相反,当Kill一个容器时,网络需要通过从负载均衡资源池、路由表和安全策略中删除相关信息来进行响应。这对速度提出了相当的要求,以避免无意中将请求分发到已经不可用的资源。

这些行动必须以速度为前提,以免可用性或规模化受到损害。可扩展、快速的管理平面是网络服务的需求,希望在容器甚至基于云的环境中保持相关性和有用性。两者都高度依赖于自动化和业务流程,因此需要专注于其应用程序接口(API)及其核心功能。如果没有快速、易使用的API,网络解决方案将面临淘汰的风险,并被软件为基础的服务取缔。

云计算强制网络无论是形式和操作都需要采用软件定义的模式,容器正在进一步改变通信模式,以使规模、路由和安全性与这些日益增长的易失性环境协同工作。网络必须适应对应用程序变更作出反应的模式,更直接地与应用程序基础设施集成。最终,网络必须真正意义上的应用来支持当今的应用交付模式。

本文转自d1net(转载)

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
人工智能 弹性计算 运维
ACK Edge与IDC:高效容器网络通信新突破
本文介绍如何基于ACK Edge以及高效的容器网络插件管理IDC进行容器化。
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。
|
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地址、网络接口列表及测试容器启动验证修复效果。
1890 39
|
12月前
|
存储 Linux 容器
【Container App】在容器中抓取网络包的方法
本文介绍在Azure Container App中安装tcpdump抓取网络包,并通过Storage Account上传抓包文件的方法。内容包括使用curl和nc测试外部接口连通性、长Ping端口、安装tcpdump、抓取网络包、以及通过crul命令上传文件至Azure Storage。适用于需要分析网络请求和排查网络问题的场景。
331 0
|
网络协议 Docker 容器
使用网络--容器互联
使用网络--容器互联
267 18
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
450 0
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
1504 8
|
NoSQL 应用服务中间件 Redis
Docker跨宿主机容器通信-通过网络跨宿主机互联
这篇文章介绍了Docker容器跨宿主机通信的实现方法,包括Docker的四种网络模式(host、none、container、bridge)以及如何通过修改网络配置和添加路由规则来实现不同宿主机上的容器之间的互联。
1536 0
Docker跨宿主机容器通信-通过网络跨宿主机互联
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
947 1