服务网格介绍
云原生环境蓬勃发展造就了产品的多样化,服务网格产品中有三个主流产品脱颖而出,并被广泛使用。下面本文将介绍这三款产品,并对其优劣势进行分析对比。
Istio、Linkerd和Consul Connect。它们都是拥有活跃社区的开源产品。基于他们的愿景和实施,他们也都有各自的优点和缺点。
Istio
Istio是kubernetes原生的服务网格,最初由Lyft开发,并被业界广泛使用。世界顶尖的云服务厂商都将其作为其服务的默认服务网格,最具代表的厂商有谷歌、IBM和微软等。Istio提供了一套极其强大的功能来创建服务之间的连接,包括请求路由、超时、断路和故障注入。此外,Istio通过延迟、流量和错误等指标对应用程序进行了深入的监控。
优势:
- 拥有最活跃的社区
- 业界采用率高
- 与Kubernetes和虚拟机一起使用
劣势:
- 学习使用难度逐步升高
- 集群开销大
- 缺乏本地管理仪表板
Linkerd
Linkerd是是第二大流行的服务网格,是云原生计算基金会(CNCF)的一部分。
架构上Linkerd与Istio并无太大区别,但它比Istio更灵活,可以支持可插拔架构的多个维度。例如:nginx、Traefik和Kong,还有Grafana、Prometheus和Jaeger合作体现其可观察性。
优势:
- 简单易用,使用的企业多
劣势:
- 仅适用于Kubernetes,不支持虚拟机中的某些网络路由功能,例如断路或速率限制
Consul Connect
Consul是分布式应用中最流行的服务发现和键/值存储,直到其母公司HashiCorp以Consul Connect的名义转换为服务网格。
Consul是用Go语言开发,从安全性及连接性来讲,它与前两款产品无太大分别,但是它的配置十分简便,复杂性更低。
优势:
- 有HashiCorp的支持和企业级支持的可用性,同时支持虚拟机和Kubernetes。
劣势:
- 开源社区有限,缺乏完整和易于理解的文档
对比分析
对比项 | Istio | Linkerd | Consul Connect |
---|---|---|---|
支持的平台 | Kubernetes 和虚拟机 | Kubernetes | Kubernetes和虚拟机 |
支持的 Ingress 控制器 | Istio ingress | 任意 | Envoy |
流量管理功能 | 蓝绿部署、断路和速率控制 | 蓝绿部署 | 蓝绿部署、断路和速率控制 |
Prometheus 和 Grafana 支持 | 是 | 是 | 否 |
混沌测试 | 是 | 是 | 否 |
管理复杂度 | 高 | 低 | 中 |
原生 GUI | 否 | 是 | 是 |
总结
服务网格以动态、安全和可扩展的方式连接分布式微服务。目前有广泛接受的用例和实现这些用例的顶级产品。然而,由于云基础设施和应用需求高度复杂,服务网格不是银弹。
当涉及到安全问题时,保护应用程序和运行时环境不在服务网格产品的范围内,而且仅仅为了安全而安装一个服务网格是矫枉过正的,因为它在集群中产生了很高的开销。
作者:詹琉
链接:https://ecloud.10086.cn/api/query/developer/user/home.html?ticket=ST-5465-2wCpfHoL3nYBNd6zmCRQ#L2FwaS9xdWVyeS9kZXZlbG9wZXIvZm9ydW0vZmxvb3JsaXN0Lmh0bWw/aWQ9ODIyNGI2ODg1NDQzNDRkY2E4M2M3ZGQ5MjBlN2FkOTImc291cmNlPXVzZXI=
来源:移动云开发者社区