Configs2026年4月16日·1 分钟阅读

Easegress — Cloud-Native Traffic Orchestration System

Easegress is a high-performance, cloud-native traffic orchestration platform written in Go that provides API gateway, load balancing, service mesh sidecar, and pipeline-based request processing with built-in resilience patterns.

Introduction

Easegress is a traffic orchestration system designed for cloud-native environments. It handles API gateway routing, load balancing, canary releases, and request transformation through composable filter pipelines, all managed via a declarative YAML-based configuration.

What Easegress Does

  • Routes and load-balances HTTP/HTTPS traffic with weighted backends and health checks
  • Processes requests through composable filter pipelines (rate limiting, auth, transformation)
  • Orchestrates traffic patterns like canary deployment, blue-green, and A/B testing
  • Runs as a standalone gateway, Kubernetes ingress controller, or service mesh sidecar
  • Provides a distributed architecture with Raft consensus for high availability

Architecture Overview

Easegress uses a pipeline model where incoming requests flow through a chain of filters. Each filter performs a specific function: routing, rate limiting, JWT validation, request rewriting, or response caching. The control plane uses an embedded etcd with Raft consensus for cluster coordination. Configuration is managed declaratively through egctl or the REST admin API.

Self-Hosting & Configuration

  • Single binary installation with no external dependencies for standalone mode
  • Kubernetes deployment via Helm chart for ingress controller or sidecar mode
  • Configuration is declarative YAML applied through egctl CLI or REST API
  • Built-in service discovery integrates with Eureka, Consul, Nacos, and Kubernetes DNS
  • TLS termination with automatic certificate management via ACME/Let's Encrypt

Key Features

  • Pipeline-based request processing with 30+ built-in filters for common traffic patterns
  • Built-in resilience with circuit breaker, rate limiter, retry, and timeout policies
  • Raft-based clustering for high availability without external coordination services
  • WebAssembly plugin support for extending pipeline logic with custom filters
  • Multi-protocol support including HTTP, HTTPS, gRPC, MQTT, and WebSocket

Comparison with Similar Tools

  • Nginx — Static config-driven reverse proxy; Easegress provides dynamic pipelines and a REST API for real-time changes
  • Kong — Lua plugin ecosystem; Easegress uses Go and WebAssembly for higher performance extensions
  • Envoy — Low-level proxy often paired with Istio; Easegress bundles traffic management into a simpler standalone package
  • Traefik — Strong auto-discovery but limited pipeline composition; Easegress offers deeper request processing chains
  • APISIX — Similar feature set; Easegress differentiates with Raft-based clustering and WebAssembly plugin support

FAQ

Q: Can Easegress replace Nginx as a reverse proxy? A: Yes. Easegress handles reverse proxying, load balancing, and TLS termination with the added benefit of dynamic configuration and composable pipelines.

Q: Does Easegress support Kubernetes ingress? A: Yes. Easegress can run as a Kubernetes Ingress Controller, reading Ingress resources and Gateway API configurations.

Q: How does Easegress achieve high availability? A: Easegress nodes form a Raft cluster that replicates configuration and state. If a node fails, remaining nodes continue serving traffic.

Q: Can I write custom filters? A: Yes. Custom filters can be written in Go as compiled plugins or in any language that compiles to WebAssembly.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产