Envoy开源代理部署和使用方法

Envoy 是一个高性能、可扩展的 L7 代理和通信总线,最初由 Lyft 开发,现在已经成为 CNCF(Cloud Native Computing Foundation)的毕业项目之一。Envoy 支持多种协议和语言,可以与多种平台和服务集成,被广泛用于微服务架构中的服务网格、API 网关、负载均衡等场景。

gitee仓库主页:https://gitee.com/mirrors/Envoy

github仓库主页:https://github.com/envoyproxy/envoy

Envoy开源代理部署和使用方法

Envoy 的优势

Envoy 具有以下优势:

  • 高性能:Envoy 采用 C++ 开发,性能优异,能够处理大量的网络流量。
  • 可扩展:Envoy 支持多进程、多核心的模式,可以根据需要进行扩展。
  • 功能丰富:Envoy 提供了负载均衡、服务发现、流量管理、熔断限流、安全认证等多种功能。
  • 易于使用:Envoy 提供了多种部署方式和配置选项,易于使用和管理。

Envoy 的部署方式

Envoy 可以通过多种方式部署,包括:

  • Docker 镜像:Envoy 官方提供了 Docker 镜像,可以直接下载使用。
  • 二进制文件:Envoy 官方提供了各个平台的二进制文件,可以直接下载使用。
  • 包管理器:Envoy 可以通过包管理器进行安装,例如在 Ubuntu 上可以使用 apt-get install envoy 命令进行安装。

Envoy 的配置方式

Envoy 的配置可以通过两种方式进行:

  • 静态配置:将所有配置信息都写入配置文件中,启动 Envoy 时加载配置文件。
  • 动态配置:通过 Envoy 的 xDS 协议进行动态配置,Envoy 会定期向 xDS 服务器拉取最新的配置信息。

静态配置

Envoy 的配置文件为 YAML 格式,可以使用文本编辑器进行编辑。配置文件中需要指定以下信息:

  • 监听地址:Envoy 监听的地址和端口。
  • 上游服务:Envoy 要代理的后端服务。
  • 负载均衡策略:Envoy 如何选择上游服务。
  • 其他配置:例如超时时间、重试策略、安全配置等。

动态配置

Envoy 的 xDS 协议定义了三种类型的配置:

  • LDS:Listener Discovery Service,用于配置 Envoy 的监听地址。
  • CDS:Cluster Discovery Service,用于配置 Envoy 的上游服务。
  • RDS:Route Discovery Service,用于配置 Envoy 的路由规则。

xDS 服务器可以是 Envoy 自身的 xDS 代理,也可以是第三方实现的 xDS 服务器。

Envoy 的使用案例

Envoy 可以用于多种场景,包括:

  • 服务网格:Envoy 可以作为服务网格中的数据平面代理,提供负载均衡、服务发现、流量管理等功能。
  • API 网关:Envoy 可以作为 API 网关,提供安全认证、限流、监控等功能。
  • 负载均衡:Envoy 可以作为负载均衡器,为多个后端服务提供负载均衡服务。
Envoy开源代理部署和使用方法