Service mesh将是您容器环境中的重要组成部分,无论是在本地还是在云中。
在KubeCon之后,我们很清楚的认识到容器已经成为当今最受关注和最有趣的技术。
其中包括服务网格。从Istio到谷歌Kubernetes引擎(GKE)到Aspen Mesh的公开测试版,有关微服务规模化运营的成熟解决方案已经随处可见。
然而,关于service mesh的问题仍然存在。它是什么?你为什么需要?难道Kubernetes不自动扩展容器吗?Service mesh还有什么其他价值?
所以,让我们更深入地研究service mesh,以及为什么你希望将service mesh集成到你的Kubernetes环境中。
什么是service mesh,为什么需要?
让我们从简单的开始 - 它是什么,为什么你需要?Service mesh是一个由sidecar代理组成的互联系统:
- 允许您使用应用层(第7层/HTTP)值来扩展微服务。这些值包括URI和主机名以及其他HTTP报头属性。在路由和扩展由微服务支持的API时,这种功能非常重要。
- 提供一种无需开发人员大量工作即可启用跟踪的方法。在高度分布式且不稳定的容器世界中,跟踪对于故障排除非常重要。跟踪HTTP报头包含的信息可以帮助识别请求通过环境的路径以及可能出错的位置。
- 提供了一种在高度分布式系统中聚合日志记录的方法。单个微服务可以在瞬间消失,随之消失的还有它们宝贵的日志数据。Service mesh可以充当集中式日志记录选项,以保持重要日志条目安全。
Kubernetes不自动扩展容器吗?
Kubernetes默认规模在传输层 - 第4层运行。HTTP的应用通常是基于TCP,TCP限制扩展只能在IP地址和端口上运行。所有应用层的优点,如URI路径、服务器名称和报头中的信息都隐藏在第7层。当您只是在完全相同的微服务上进行负载平衡时,默认的扩展方法非常棒。但是,如果您试图将/api/product和/api/profile路由到不同的微服务,则需要在应用层进行操作。这是service mesh带来的功能之一。
Service mesh还有什么其他价值?
Service mesh可以看到容器集群内发生的所有事情。通过企业级service mesh,它可以看到其他地方的集群中发生了什么,比如云。这意味着service mesh不仅能够监控给定pod/node的运行状况和活跃度,还可以提供对各种指标的可见性,例如延迟、错误率和mTLS状态。为了满足可操作性的需求,它还可以在配置的阈值上立即发出警报,以确保可以采取措施来最小化MTTR。
毫无疑问,Kubernetes赢得容器市场的原因之一是它致力于实现生态系统。虽然它在许多重要的应用程序服务类别中提供了基本功能,包括扩展和可观察性,但系统支持并鼓励其他人扩展它。Service mesh是对应用程序感知扩展服务需求的响应,以及对发生在容器化应用程序中的狂热通信的更大可见性的响应 - 特别是当它构建在微服务架构上时。
无论是在本地还是在云中,service mesh都将是您的容器化环境的重要组成部分。
原文链接:
https://www.networkcomputing.com/applications/service-mesh-mania/433455940