Envoy和Sidecar有什么区别?

更新时间:2025-02-19 05:45:02

本文介绍EnvoySidecar的主要功能和区别。

概念介绍

EnvoySidecar是两个在微服务架构和云原生环境中常见的概念,但它们在功能和主要用途上有所不同。Envoy是一个软件产品,可以用作代理来管理网络流量。Sidecar是一种架构模式,它描述了如何在微服务架构中部署和组织代理或其他辅助容器。

服务网格 ASM(Service Mesh)环境中,Envoy通常用作Sidecar代理,实现Sidecar的功能。但是Sidecar并不一定是Envoy,其他类型的代理或辅助容器(如日志收集器或监控代理)也可以作为Sidecar部署。

Envoy

Envoy是一个现代的、高性能的代理和通信总线,最初由Lyft开发,后来成为CNCF的一部分。Envoy在微服务架构中通常用作边缘代理或服务代理。它的关键特点包括:

  • 高级流量管理:给开发者提供了细粒度的流量控制,包括路由、负载均衡、重试、故障注入、流量镜像等功能。

  • 服务发现:Envoy可以与服务发现系统集成,动态地调整服务的路由。

  • 健康检查:支持对后端服务进行健康检查,以确保流量只发往健康的实例。

  • 分布式追踪:支持OpenTelemetryZipkin等标准,使得请求在服务间的传递可被追踪。

  • 安全性:支持mTLS(相互传输层安全),即在服务间进行加密通信。

Sidecar

Sidecar是一种架构模式,将辅助功能部署在主应用容器旁边的另一个容器中。Sidecar容器与主应用容器共享同一个Pod,主要用于:

  • 功能扩展:Sidecar模式允许在主容器所在的Pod中,额外运行一个独立的容器,以提供一些附加的功能(如日志记录、监控、代理、中间件等),从而不干扰主应用。

  • 简化架构:通过将一些非核心功能(如配置管理、安全、监控等)转移到Sidecar容器,从而保持主应用的简洁。

  • 代理和通信:常用于微服务架构中的代理(如Envoy),以处理服务间的通信。

主要区别

特性

Envoy

Sidecar

特性

Envoy

Sidecar

类型

代理软件(代理、负载均衡器)。

架构模式(防止在主服务中增加额外的复杂性)。

功能

动态服务发现、负载均衡、TLS终止、HTTP/2gRPC代理、熔断、健康检查、基于百分比的流量管理、遥测数据(如监控和追踪)等。

提供附加功能(如日志、监控、通信代理等)。

部署

可以单独部署,也可以作为Sidecar运行。

依附于应用服务,作为Pod中的容器。

可观察性

支持流量追踪、统计和健康检查。

通常与监控、日志服务协调实现服务可观测。

使用场景

用于微服务架构中的边缘流量管理、服务间流量代理。

注入到微服务中以增强其功能、增加可管理性。

  • 本页导读 (1)
  • 概念介绍
  • Envoy
  • Sidecar
  • 主要区别
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等