服务网格(Service Mesh)流行工具

在这篇博客中,我们将介绍微服务的最佳服务网格工具列表,这些工具提供安全性、金丝雀部署、遥测、负载均衡等。

用于部署和操作微服务的服务网格工具的数量不断增加。在这篇文章中,我们将探讨您应该用来构建自己的服务网格架构的顶级服务网格工具。

在制定选择正确工具的策略时,首先要做的是了解它将为您提供什么以及它的效果如何。

注意:为了更好地理解服务网格,您应该了解微服务和 Kubernetes 或类似的容器编排工具。

什么是服务网格

在软件架构中,服务网格是一个专用的基础设施层,用于使用代理促进服务或微服务之间的服务到服务通信 -- wikipedia.org

如果要管理、监视和保护所有微服务之间的通信,该怎么办?这就是服务网格的用武之地。

服务网格是一种为微服务提供抽象层的工具。它们在服务之间提供智能路由、弹性和负载均衡功能,具有比传统解决方案更好的容错能力。

总体而言,服务网格管理所有服务到服务的通信。它拦截服务之间的所有流量。最好的部分是,您可以以声明方式管理所有服务网格功能,就像在 Kubernetes 中部署对象一样。

服务网格有什么用

服务网格本质上主要使用 sidecar 代理管理多个微服务之间的流量。

Service mesh traffic flow

使用服务网格有很多好处,包括通过提供通信加密来提高安全性,通过可观测性工具简化调试过程,以及由于智能故障转移功能和跨容器或机器的分布式跟踪而实现的水平可扩展性而提高可用性。

服务网格旨在提供以下功能

  1. 路由和负载平衡
  2. 服务发现
  3. 身份验证和授权
  4. 金丝雀部署
  5. 熔断、限流、运行状况检查和重试预算
  6. 相互传输级别安全性 (mTLS) 和访问控制列表。
  7. 通过分布式跟踪实现可观测性
  8. 服务间通信访问日志

在大多数情况下,与应用程序容器一起运行的 sidecar 容器会处理上述所有功能。您不必专门设计应用程序来使用服务网格。此外,无需额外的仪器即可监控具有服务网格功能的服务。

最好的服务网格工具?

下面是一些流行的服务网格工具

1. Istio

GithubGitHub - istio/istio
官网istio.io
文档Istio Official Documentation

Istio 是一个服务网格,由 Google 开发并开源的。它提供了一种连接、管理和保护相互通信的微服务的方法。

Istio service mesh architecture

Istio 的安全功能包括加密传输中的服务之间的所有通信,以及为授权用户提供身份验证凭证。Istio 还提供跨容器或机器的分布式跟踪等功能,而无需在单个节点中使用第三方软件代理。

Istio 被 Adobe、百度和谷歌等许多公司用于生产。

2. Linkerd

GithubGitHub - linkerd/linkerd2
官方网站linkerd.io
官方文档https://linkerd.io/2.10/overview/

Linkerd 是一个开源服务网格,可以在 Kubernetes 或 Mesos 集群上运行,专为管理大量微服务的大规模环境而设计。

Linkerd service mesh architecture

Linkerd 还将提供监控、跟踪、路由、负载均衡和其他功能,以及跨集群的自动部署升级

3. Cilium Service Mesh

Githubhttps://github.com/cilium/cilium
官方网站cilium.io
文档https://docs.cilium.io/en/stable/

Cilium 是一种用于容器和微服务的开源轻量级网络和安全解决方案。它使用 Linux 内核的 BPF(Berkeley 数据包过滤器)技术为容器和微服务提供透明度、可见性和安全性。Cilium 提供了一种灵活的方法来容器化和微服务化应用程序,而无需绑定到任何特定的编排解决方案。

  1. 容器和微服务感知网络策略
  2. 自动发现服务
  3. L7(第 7 层)感知策略实施
  4. 容器和主机的统一安全模型
  5. 细粒度的安全可见性
  6. 容器和微服务之间的安全通信
  7. 无需中央控制器或管理开销

Cilium 是一种无需更改任何代码即可提高容器化应用程序安全性和网络的简单方法。Cilium 与 Docker、Kubernetes 和 Mesos 等流行的编排解决方案集成,可与任何基于 Linux 的应用程序一起使用。

如果您正在寻找一种轻量级、易于使用的解决方案来保护容器和微服务并联网,那么 Cilium 是您的正确选择。

4. Consul connect

Githubhttps://github.com/hashicorp/consul
官方网站consul.io
文档https://www.consul.io/docs/connect

Consul Connect 是 Hashicorp 的服务网格解决方案。

Consul 最初是为服务发现而设计的。但是,通过 consul connect,服务网格部署在 consul 之上,并提供服务发现、配置同步和故障检测。

5. Traefik Mesh

Githubhttps://github.com/traefik/mesh
官方网站traefik.io
文档https://doc.traefik.io/traefik-mesh/

Traefik Mesh 是一个简单的服务网格解决方案,主要用于负载均衡。

Traefik Mesh 是流行的反向代理 Traefik 的插件,可帮助发现服务并在服务之间路由以平衡工作负载。

Traefik service mesh architecture

它还提供 SSL 终止和 Web 套接字代理等功能,因此您不必担心这些事情,如果它们

6. Open Service Mesh (OSM)

Github的OSM 存储库
官方网站openservicemesh.io
学习OSM 官方文档

Open Service Mesh (OSM) 是一种轻量级且可扩展的云原生服务网格,支持动态服务发现、监控和路由。

OSM在所有级别上都是可插拔的,以提供最适合您要求的产品:

  1. 服务发现 – 第四层 (IP) 或第七层 (URL)
  2. 监控 – 基于 Prometheus 的指标,后端支持 Graphite、InfluxDB 和 Elasticsearch
  3. 路由 – HAProxy 作为服务之间的代理,通过集群中 Pod 之间的请求负载均衡来提供高可用性。它还提供 SSL 终止和 Web 套接字代理等功能,因此如果它们运行在不安全的协议(例如明文 TCP/UDP 连接)上,您不必担心这些事情。这有助于通过仅允许来自授权 IP 的流量通过服务网格来确保访问控制。

7. Nginx Service Mesh (NSM)

Nginx 服务网格是用于 kubernetes 的轻量级服务网格,具有零信任环境,可在容器之间提供加密流量。

Nginx service mesh

它使用由 Nginx Plus 提供支持的数据平面管理容器之间的数据流量。Nginx 服务网格主要关注以下几点。

  1. 安全性:服务之间的 mTLS 加密流量。
  2. 流量管理:具有速率限制和断路器的服务之间的策略管理流量控制。
  3. 可视化:内置的 Grafana 仪表板提供了对 NGINX 和指标的可见性。
  4. 混合部署:遗留应用程序可以通过 Nginx 入口控制器与服务网格进行社区化。

8. Kuma

Github的Kuma 开源存储库
官方网站kuma.io
学习Kuma 官方文档

Kuma 服务网格最初由 Kong, Inc 创建,现在是 CNCF 沙盒项目。它建立在 Envoy 代理之上。它可以充当 kubernetes 集群和 VM 的服务网格。

以下是隈研吾的主要特点

  1. 通用控制平面
  2. 轻量级数据平面
  3. 多网格
  4. mTLS 和 TLS 轮换
  5. 故障注入
  6. 流量跟踪和流量指标
  7. 与平台无关
  8. 透明代理

其他要考虑的 Service Mesh 工具

以下是其他基于 CNCF 的服务网格工具。

  1. 网状物
  2. Gloo 网状物
  3. 灰质
  4. 服务网格接口
  5. 网络服务网格

以下是一些云托管的服务网格服务。

  1. AWS 应用网格
  2. Anthos 服务网格
  3. GitHub - linkerd/linkerd2

总结

做出选择时,首先要深入研究服务网格功能。您应该能够使用 Service Mesh 工具提供的功能来调整组织的需求。

其次,确定您是否拥有具有实施和管理该工具的技能组合的团队。初始设置总是很容易,真正的麻烦在于其生命周期管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/384743.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视觉开发板—K210自学笔记(五)

本期我们来遵循其他单片机的学习路线开始去用板子上的按键控制点亮LED。那么第一步还是先知道K210里面的硬件电路是怎么连接的,需要查看第二节的文档,看看开发板原理图到底是按键是跟哪个IO连在一起。然后再建立输入按键和GPIO的映射就可以开始变成了。 …

PHP特性知识点总结

description: 专门出的关于php的特性比较,后面好像也有java的特性。 大家直接去我的gitbook或者github看就能看到图片,这里就懒得把他弄到csdn上了。 这里放github和gitbook的链接,大家跳转就可以。gitbook链接用国内的网就能访问。 gitbook: http://22kaka.fun github:htt…

STM32 + ESP8266,连接阿里云 上报/订阅数据

(文章正在编辑中,一点点地截图操作过程,估计要拖拉两三天) 一、烧录MQTT固件 ESP8266出厂时,默认是AT固件。连接阿里云,需要使用MQTT固件。 1、独立EPS8266模块的烧录方法 2、魔女开发板,板载…

HTTP协议-请求Request

前言: 序列:HTTP - 002 1.请求格式 1.1标椎格式 HTTP请求是字符串的格式传输,具体包含以下四部分: 首行:[方法][url][版本号],分别使用空格分隔;请求头(Header)&#…

apk反编译修改教程系列---简单修改apk默认横竖屏显示 手机端与电脑端同步演示【十一】

往期教程: apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 apk反编译修改教程系列---简单…

《UE5_C++多人TPS完整教程》学习笔记8 ——《P9 访问 Steam(Acessing Steam)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P9 访问 Steam(Acessing Steam)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者&…

[JavaWeb玩耍日记]Maven的安装与使用

目录 一.作用 二.安装 三.使用 2.对项目使用compile命令进行编译,看看新的文件会在哪里产生? 3.需要认识的命令 4.Maven对项目执行不同命令的生命周期特点? 5.如何导入工程外的Maven? 6.如何直观地查看Maven导入了哪些工程或哪些jar包…

Stream流学习笔记

Stream流 创建流中间操作1、filter2、map3、distinct4、sorted5、limit6、skip7、flatMap 终结操作1、forEach2、count3、max&min4、collect5、查找与匹配 创建流 单例集合&#xff1a;集合对象.stream() List<Integer> list new ArrayList<>(); Stream<…

前端JavaScript篇之Promise解决了什么问题、Promise.all和Promise.race的区别的使用场景

目录 Promise解决了什么问题Promise.all和Promise.race的区别的使用场景 Promise解决了什么问题 Promise 解决了 JavaScript 中回调地狱的问题。在传统的回调函数中&#xff0c;如果需要依次执行多个异步操作&#xff0c;就需要使用嵌套的回调函数&#xff0c;这样会导致代码难…

如何学习VBA_3.2.14:VBA中字符串的处理和判断函数

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的劳动效率&#xff0c;而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册&#xff0c;现在已经全部完成&#xff0c;希望大家利用、学习。 如果…

EasyCaptcha,开源图形验证码新标杆!

引言&#xff1a; 随着互联网的普及&#xff0c;验证码已成为网站和应用程序中不可或缺的安全组件。它能够有效地防止自动化攻击、垃圾邮件和机器人活动。在众多验证码解决方案中&#xff0c;Easy-captcha以其简单易用和高度可定制的特点受到了开发者的青睐。本文将指导读者如…

leetcode:买卖股票最佳时机二

思路&#xff1a; 使用贪心算法&#xff1a;局部最优是将买卖过程中产生的正数进行相加&#xff0c;进而使得最后结果最大&#xff08;全局最优&#xff09;。 price [7,1,5,10,3,6,4] -6,4,5,-7,3,-2 正数相加就得到了最大 代码实现&#xff1a; 1.循环中下标从1开始 …

unity2017 遇到visual studio 2017(社区版) 30日试用期到了

安装unity2017 遇到visual studio 2017 30日试用期到了&#xff0c;网上百度搜了好多方法都没有成功。 最后用了这个方法&#xff1a; 1)启动vs2017&#xff0c;在弹出要登录的窗口之前&#xff0c;迅速的点击工具-》选项-》账户&#xff0c;勾选在添加账户或对账户重新进行身…

【技巧】Allegro实用技巧之模块复用

需求分析&#xff1a;使用Allegro软件进行PCB Layout设计时&#xff0c;当电路图中有很多路相同的模块&#xff0c;使用模块复用的的操作方法&#xff0c;可以显著提高工作效率&#xff0c;同时也可以使PCB布局在整体上显得美观。下面来讲述这个方法。 具体方法及说明&#xf…

计算机组成原理 1 概论

主要内容 介绍运算器、控制器、存储器结构、工作原理、设计方法及互连构成整机的技术。 主要内容&#xff1a; ◼ 数值表示与运算方法 ◼ 运算器的功能、组成和基本运行原理 ◼ 存储器及层次存储系统 ◼ 指令系统 ◼ CPU功能、组成和运行原理 ◼ 流水线 ◼ 系统总线 ◼ 输入输出…

【蓝桥杯选拔赛真题34】C++最大值 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C最大值 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C/C最大值 第十三届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 1、编程实现&#xff08;C&#xff09; 给定一个…

C# WinFrom+AspNetCore WebApi实现大文件下载与上传

客户端UI: 服务端WebApi: 客户端代码&#xff1a; App.config&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <configuration><appSettings><add key"WebApi" value"https://localhost:7285"/><…

Days 29 ElfBoard LCD屏双电荷泵电路原理

7寸LCD屏幕的屏幕排线中采用的供电电压是5V供电&#xff0c;但是在屏幕工作时需要VCOM-5.3V、AVDD-12.5V、VGL--7V、VGH-17V几组电压&#xff0c;所以要对初始的5V电源进行DC-DC电压变换&#xff0c;在这里我们用到了双电荷泵电路。 再此电路中VCC_5V为电源输入&#xff0c;E…

2024年2月5日-2月11日周报

论文阅读 1. 本周计划2. 完成情况2.1 论文摘要2.2 网络结构2.3 损失函数2.4 优化器2.5 代码2.5.1 代码结果2.5.2 代码大致流程 4. 总结及收获4. 下周计划 1. 本周计划 阅读论文《Data-Driven Seismic Waveform Inversion: A Study on the Robustness and Generalization》并实…