Service Mesh:影响Kubernetes使用成本的双刃剑

译者 | 崔皓
本文主要讲述Service Mesh如何影响Kubernetes的成本,带大家深入了解什么是Service Mesh以及如何使用Service Mesh减少Kubernetes的使用成本。

什么是Kubernetes的Service Mesh?


Service Mesh是一个专门的基础设施层,用于处理分布式微服务架构中服务与服务之间的通信。它通常包括服务发现、负载平衡、路由、容错和监控等功能。它还为服务之间的通信提供了一种统一的方式。Service Mesh的目标是减少管理微服务之间通信的复杂性,让使用者更容易扩展和维护一个分布式系统。
Kubernetes的Service Mesh部署在Kubernetes集群之上,为运行在Kubernetes上的服务提供了一种可靠和可扩展的相互通信方式。通过使用Service Mesh,开发人员可以专注于构建和部署他们的应用程序。这使在Kubernetes上开发、部署和管理分布式系统变得更容易。
在Kubernetes上,Service Mesh通常是通过一个sidecar代理来实现的,它是一个独立的进程,与网状结构中的每个服务一起运行。sidecar代理负责拦截和引导Service Mesh中服务之间的流量,并执行Service Mesh中定义的规则和策略。
在可持续性方面,Service Mesh比其他流量管理方法具有不少优势。它为服务之间的通信提供了一种统一的方式,这种方式使人们更容易理解系统行为。同时也帮助人们识别和排除问题,并避免问题的发生。

Service Mesh能降低

Kubernetes的成本吗?


Service Mesh可以在几个方面降低Kubernetes的成本。首先,Service Mesh使管理和维护分布式系统变得更加容易,它能够保持系统顺利运行,从这点而言就会帮助运维人员节省系统运维的时间和精力。除此之外,它还可以减少对专业人员和资源的需求,从而降低整体成本。
以下我们列举Service Mesh有几个关键特征,看看是如何降低成本的。
  • 可观察性:Service Mesh使分布式系统的行为和性能可见。这可以帮助运维人员更容易地识别和排除问题,并防止停机事件和其他重大问题的发生。

  • 安全性:Service Mesh提供了诸如认证、授权和加密等功能,这些功能可以确保服务之间的通信。并可以防止安全漏洞以及加少相关费用的增加。

  • 集中控制:Service Mesh为管理服务之间的通信提供一个中央控制点。这样做可以优化和控制分布式系统中的资源,让使用资源更加容易,同时可以降低系统运行的总体成本。

  • 弹性:Service Mesh提供自动重试、断路和故障注入等功能,这些功能可以提高分布式系统的弹性和稳定性。同时可以减少停机事件和其他问题发生的几率,由于这些问题的修复成本很高,因此也是变相降低了运维成本。

  • 提高生产力:Service Mesh可以使在Kubernetes上的部署和扩展活动更加容易,帮助节省新应用程序启动和运行所需的时间和精力。从而提高开发和部署过程的速度和敏捷性,最终实现提高整体生产力。


Service Mesh的隐性成本是什么?


虽然使用Service Mesh会给我们带来很多益处,但使用它也会引入一些隐性成本。包括如下:
  • 复杂性:虽然Service Mesh简化了微服务之间的通信,但Service Mesh给分布式系统增加了一层额外的复杂性,可能使它更难理解和管理。这可能会增加开发、部署和维护应用程序所需的时间和精力。

  • 资源开销:Service Mesh的运行和管理需要消耗额外的资源,如CPU、内存和网络带宽等。这会导致增加系统的整体资源使用,从而增加总成本的支出。

  • 集成成本:如果应用Service Mesh需要对应用程序代码进行修改以对Service Mesh的集成。这可能会增加开发和部署应用程序的成本。


评估Service Mesh成本的重要因素


运行Control Plane(控制平面)需要多少个镜像?


Service Mesh控制平面的容器映像增加会导致所消耗的资源增加,同时会增加系统的复杂性,从而影响CPU使用成本以及Service Mesh的使用成本。因此,我们需要考虑运行控制平面的容器映像的数量,从而优化性能和最小化成本,这一点非常重要。

服务网的Ingress控制器容量是多少?


Ingress控制器负责管理进入Service Mesh的流量,它的工作需要CPU和内存等资源支撑。Service Mesh收到的流量越多,处理这些流量所需的资源就越多。
如果Ingress控制器的容量不足以处理Service Mesh网络接收到的流量,这会导致拥堵和流量丢失。甚至导致服务的延迟和中断,从而影响用户体验,导致系统收益减少和运维成本增加。

是否启用自动缩放功能?


Kubernetes自动缩放允许根据CPU或内存使用情况,自动调整部署的副本数量。这可以确保部署的应用始终能够处理工作负载,并保持所需的性能水平。然而,这也可能导致部署的应用频繁地扩大或缩小,这对系统的整体资源使用提出更高的要求,并导致更高的使用成本。


多租户还是多集群?


这里针对多租户(在大型集群中隔离Kubernetes资源)会带来了一些挑战,包括增加DevOps团队的负担和配置问题。多集群部署会增加管理和协调多个集群的Service Mesh工作,从而增加其复杂性。这写工作都需要额外的人员和资源。

结论


总之,Service Mesh可以为Kubernetes用户提供许多帮助,包括提高可观察性、安全性和生产力。然而,必须仔细考虑使用Service Mesh的潜在成本,并确保获得的收益大于付出的成本。
原文链接:https://dzone.com/articles/how-a-service-mesh-impacts-your-kubernetes-costs

崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。


相关推荐

  • 理想L9路边自燃起火、俄罗斯科技巨头Yandex被前员工泄露44.7G源码、百度或将推出类ChatGPT聊天机器人 | T资讯
  • 2023归零 重启 加速
  • 用户破亿!编程届当之无愧的神!
  • 如何成为世界级软件公司
  • 被 Google 裁掉的 Golden 12K:开源开发者成重灾区,61 岁再求职!
  • 用Python制作空间数据可视化
  • 胡鑫宇遗体找到!衣服破烂,口袋有钱:5大疑点是破案关键…
  • 海澜之家一折起清仓,羽绒服99秒,随时关闭,速抢。
  • 《满江红》破30亿!这个不输西安,被林徽因疯狂表白的老城,终于藏不住了...
  • 14.3k star,这是我见过最强的第三方登录工具库!!
  • 学会了海外抖音才发现:靠副业生活,真的不难!
  • 百度自动驾驶开始发力,集度汽车亮相广州车展
  • 我是,地地道道农民的孩子。。。
  • 一个45岁的人,送给你33句话
  • ChatGPT被超越了?OpenAI核心成员出走,打造Claude模型
  • Yann LeCun 新作!大幅超越 MAE,图像语义表示卷出新高度
  • UUID 正在被 NanoID 取代?
  • 不使用第三方库怎么实现【前端引导页】功能?
  • 前端文件下载的正确打开方式
  • HashMap 为什么不能一边遍历一遍删除