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

译文 精选
云计算 云原生
Kubernetes的Service Mesh部署在Kubernetes集群之上,为运行在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成本的重要因素

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

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

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

Ingress控制器负责管理进入Service Mesh的流量,它的工作需要CPU和内存等资源支撑。Service Mesh收到的流量越多,处理这些流量所需的资源就越多。

如果Ingress控制器的容量不足以处理Service Mesh网络接收到的流量,这会导致拥堵和流量丢失。甚至导致服务的延迟和中断,从而影响用户体验,导致系统收益减少和运维成本增加。

3.是否启用自动缩放功能?

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

4.多租户还是多集群?

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

五、结论

总之,Service Mesh可以为Kubernetes用户提供许多帮助,包括提高可观察性、安全性和生产力。然而,必须仔细考虑使用Service Mesh的潜在成本,并确保获得的收益大于付出的成本。

原文链接:https://dzone.com/articles/how-a-service-mesh-impacts-your-kubernetes-costs

译者介绍

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

责任编辑:武晓燕 来源: 51CTO技术栈
相关推荐

2014-02-11 08:57:50

云计算IT架构IT运营

2010-09-02 14:52:20

CSS框架

2019-12-18 15:30:57

漏洞安全Linux

2017-08-14 14:51:15

2012-03-05 16:37:55

2012-12-25 12:42:46

应用审查App Store

2009-03-05 10:50:00

空中上网

2021-04-29 07:43:51

JavaUnsafe 基础native方法

2019-03-21 14:12:27

数据管理物联网物联网安全

2015-05-27 16:35:59

2012-06-14 10:37:33

2011-11-08 08:14:40

WLANWi-Fi

2014-05-06 09:17:59

云服务云欺诈云犯罪

2011-03-10 10:04:20

Ntdsutil

2019-07-08 15:38:22

大数据系统存储

2017-06-14 17:39:40

微服务架构服务器

2020-11-23 08:30:42

AI

2022-03-18 13:50:06

区块链加密货币去中心化

2013-08-13 09:07:20

大数据

2012-06-19 10:16:04

点赞
收藏

51CTO技术栈公众号