本文介绍Envoy和Sidecar的主要功能和区别。
概念介绍
Envoy和Sidecar是两个在微服务架构和云原生环境中常见的概念,但它们在功能和主要用途上有所不同。Envoy是一个软件产品,可以用作代理来管理网络流量。Sidecar是一种架构模式,它描述了如何在微服务架构中部署和组织代理或其他辅助容器。
在服务网格 ASM(Service Mesh)环境中,Envoy通常用作Sidecar代理,实现Sidecar的功能。但是Sidecar并不一定是Envoy,其他类型的代理或辅助容器(如日志收集器或监控代理)也可以作为Sidecar部署。
Envoy
Envoy是一个现代的、高性能的代理和通信总线,最初由Lyft开发,后来成为CNCF的一部分。Envoy在微服务架构中通常用作边缘代理或服务代理。它的关键特点包括:
高级流量管理:给开发者提供了细粒度的流量控制,包括路由、负载均衡、重试、故障注入、流量镜像等功能。
服务发现:Envoy可以与服务发现系统集成,动态地调整服务的路由。
健康检查:支持对后端服务进行健康检查,以确保流量只发往健康的实例。
分布式追踪:支持OpenTelemetry和Zipkin等标准,使得请求在服务间的传递可被追踪。
安全性:支持mTLS(相互传输层安全),即在服务间进行加密通信。
Sidecar
Sidecar是一种架构模式,将辅助功能部署在主应用容器旁边的另一个容器中。Sidecar容器与主应用容器共享同一个Pod,主要用于:
功能扩展:Sidecar模式允许在主容器所在的Pod中,额外运行一个独立的容器,以提供一些附加的功能(如日志记录、监控、代理、中间件等),从而不干扰主应用。
简化架构:通过将一些非核心功能(如配置管理、安全、监控等)转移到Sidecar容器,从而保持主应用的简洁。
代理和通信:常用于微服务架构中的代理(如Envoy),以处理服务间的通信。
主要区别
特性 | Envoy | Sidecar |
特性 | Envoy | Sidecar |
类型 | 代理软件(代理、负载均衡器)。 | 架构模式(防止在主服务中增加额外的复杂性)。 |
功能 | 动态服务发现、负载均衡、TLS终止、HTTP/2和gRPC代理、熔断、健康检查、基于百分比的流量管理、遥测数据(如监控和追踪)等。 | 提供附加功能(如日志、监控、通信代理等)。 |
部署 | 可以单独部署,也可以作为Sidecar运行。 | 依附于应用服务,作为Pod中的容器。 |
可观察性 | 支持流量追踪、统计和健康检查。 | 通常与监控、日志服务协调实现服务可观测。 |
使用场景 | 用于微服务架构中的边缘流量管理、服务间流量代理。 | 注入到微服务中以增强其功能、增加可管理性。 |
- 本页导读 (1)
- 概念介绍
- Envoy
- Sidecar
- 主要区别