云原生网关¶
网关是介于客户端和服务器端之间的中间层,所有的外部请求都需要经过网关层。 而云原生网关指的是基于云原生可声明式 API 概念发展而来的、与业务解耦的网关,例如 Zuul、Kong、Nginx、Spring Cloud Gateway、Envoy 等。 云原生网关最显著的特点是,可以通过声明的方式定义网关的运行时配置,可以通过控制面的声明自动生成配置。 云原生网关的功能和微服务网关基本类似,例如身份验证、路由、监控、负载均衡、缓存、服务升降级、静态响应处理、流量控制、日志、重试、熔断等。
-
Sentinel
Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来保障微服务的稳定性。 Sentinel 具有丰富的应用场景,承接了阿里巴巴近 10 年的双十一大促流量的核心场景。Sentinel 具有完备的实时监控,用户可以在控制台中看到接入应用的单台机器的秒级数据。 Sentinel 提供与其它开源框架 / 库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合,可以开箱即用。 此外,Sentinel 还能提供简单易用、完善的 SPI 扩展接口,用户可以通过实现扩展接口来快速地定制逻辑。
-
Envoy
Envoy 是面向服务架构的高性能网络代理,拥有强大的定制化能力。 Envoy 是面向服务架构设计的 L7 代理和通信总线,核心是⼀个 L3/L4 网络代理。 Envoy 通常以 Sidecar 的方式运行在应用程序的周边,也可以作为网络的边缘代理来运行。 Envoy 的特性包括:进程外体系结构、L3/L4 过滤器体系结构、HTTP L7 过滤器体系结构、一流的 HTTP/2 支持、 HTTP/3 支持、HTTP L7 路由、gRPC 支持、服务发现和动态配置、健康检查、高级负载平衡、前端/边缘代理支持、一流的可观察性等。
-
Contour
Contour 将 Envoy 部署为反向代理和负载均衡器,从而充当 Kubernetes 的入口控制器。 Contour 支持动态配置更新,而且还引入了一个新的入口 API (HTTPProxy)。 该 API 通过自定义资源定义 (CRD) 实现,目标是扩展 Ingress API 的功能,提供更丰富的用户体验并解决原始设计中的缺陷。 Contour 架构灵活,可以部署为 Kubernetes Deployment 或 Daemonset。此外,Contour 还具有 TLS 证书授权特性,管理员可以安全地委派通配符证书访问。