您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

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

时间:2023-01-30 16:12:36  来源:51CTO  作者:崔皓

译者 | 崔皓

 

本文主要讲述Service Mesh如何影响Kube.NETes的成本,带大家深入了解什么是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年分布式架构经验。



Tags:Kubernetes   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  Search: Kubernetes  点击:(7)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  Search: Kubernetes  点击:(22)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  Search: Kubernetes  点击:(40)  评论:(0)  加入收藏
Kubernetes是什么?主要特点是什么?
Kubernetes是什么?Kubernetes,也称为K8s,是一个开源的容器编排系统,由Google首次开发和维护。它允许容器化的应用程序在集群中自动部署、扩展和管理。Kubernetes提供了一种容器...【详细内容】
2024-02-01  Search: Kubernetes  点击:(169)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  Search: Kubernetes  点击:(53)  评论:(0)  加入收藏
Kubernetes Informer基本原理,你明白了吗?
本文分析 k8s controller 中 informer 启动的基本流程不论是 k8s 自身组件,还是自己编写 controller,都需要通过 apiserver 监听 etcd 事件来完成自己的控制循环逻辑。如何高...【详细内容】
2024-01-30  Search: Kubernetes  点击:(41)  评论:(0)  加入收藏
Kubernetes 100个常用命令!
这篇文章是关于使用 Kubectl 进行 Kubernetes 诊断的指南。列出了 100 个 Kubectl 命令,这些命令对于诊断 Kubernetes 集群中的问题非常有用。这些问题包括但不限于:• 集...【详细内容】
2024-01-03  Search: Kubernetes  点击:(81)  评论:(0)  加入收藏
一文读懂Kubernetes部署策略
在这篇文章中,我们将深入研究 Kubernetes 部署概念和一些常见策略,了解每种策略的优缺点。合适的部署策略使我们能够在发布应用程序时最大限度地减少停机时间、增强客户体验并...【详细内容】
2024-01-03  Search: Kubernetes  点击:(63)  评论:(0)  加入收藏
从Kubernetes的探针到DevOps
今天在群里又看有人问如何设置 Kubernetes 的探针,感觉要补充的话太多了,结合我们在一些 DevOps 项目中痛苦的体验,今天一劳永逸的全部说完,此外,也为大家展现一下为什么 DevOps...【详细内容】
2023-12-27  Search: Kubernetes  点击:(121)  评论:(0)  加入收藏
如何基于Kubernetes运行Nacos高可用集群
Nacos(Namings and Configuration Management)是阿里巴巴开源的一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。以下是Nacos的一些主要功能和特点: 服务发现...【详细内容】
2023-12-18  Search: Kubernetes  点击:(74)  评论:(0)  加入收藏
▌简易百科推荐
Qt与Flutter:在跨平台UI框架中哪个更受欢迎?
在跨平台UI框架领域,Qt和Flutter是两个备受瞩目的选择。它们各自具有独特的优势,也各自有着广泛的应用场景。本文将对Qt和Flutter进行详细的比较,以探讨在跨平台UI框架中哪个更...【详细内容】
2024-04-12  刘长伟    Tags:UI框架   点击:(6)  评论:(0)  加入收藏
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  京东云开发者    Tags:Web Components   点击:(8)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  InfoQ    Tags:Kubernetes   点击:(22)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  风舞凋零叶    Tags:Spring Security   点击:(59)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  贝格前端工场    Tags:框架   点击:(50)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  程序员wayn  微信公众号  Tags:Spring   点击:(40)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  云云众生s  微信公众号  Tags:Kubernetes   点击:(53)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  大噬元兽  微信公众号  Tags:框架   点击:(71)  评论:(0)  加入收藏
Spring实现Kafka重试Topic,真的太香了
概述Kafka的强大功能之一是每个分区都有一个Consumer的偏移值。该偏移值是消费者将读取的下一条消息的值。可以自动或手动增加该值。如果我们由于错误而无法处理消息并想重...【详细内容】
2024-01-26  HELLO程序员  微信公众号  Tags:Spring   点击:(91)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19   Java中文社群  微信公众号  Tags:SpringBoot   点击:(88)  评论:(0)  加入收藏
站内最新
站内热门
站内头条