Traffic Management
Gloo Gateway has a powerful routing engine that can handle simple use cases like API-to-API routing as well as more complex ones like HTTP to gRPC with body and header transformations. Routing can also be done natively to cloud-function providers like AWS Lambda, Google Cloud Functions and Azure Functions.
Gloo Gateway can route requests directly to functions, which can be: a serverless function call (e.g. AWS Lambda, Google Cloud Function, Microsoft Azure Function) or an API call on a microservice or a legacy service (e.g. a REST API call, OpenAPI operation, gRPC operation). This unique ability is what makes Gloo Gateway the only API gateway that supports hybrid apps, as well as the only one that does not tie the user to a specific paradigm.
Concepts
Review the following pages to understand the basic concepts for Gloo Gateway traffic management.
- Traffic management: Descriptions about the primary Gloo Gateway traffic management components, including gateways, virtual services, routes, and upstreams.
- Traffic processing: Description of the types of transformations that Gloo Gateway can apply to traffic, including an overview of the filter flow for policies, external authorization and authentication, rate limiting, and other transformations.
Examples
Now that you have a basic framework for understanding what Gloo Gateway routing does, let’s get started with a Hello World example. After you’re comfortable implementing a basic configuration, you can move to more advanced use cases and expand your understanding of core concepts in Gloo Gateway like Transformations and Network Security.
-
Hello World: Follow this guide for hands on, step-by-step tutorial for creating your first Virtual Service and routing rules in Kubernetes.
-
HTTP Connection Manager: Refine the behavior of Envoy for each listener that you manage with Gloo Gateway
-
Hybrid Gateway: Define multiple HTTP or TCP Gateways within a single Gateway
-
gRPC Web: Enable or disable the transcoding of messages to support gRPC web clients
-
TCP Proxy: Learn how to use Gloo Gateway as a simple TCP proxy
-
Websockets: Learn how to configure Websockets support in Gloo Gateway
-
Response caching: Learn how to configure response caching for upstream services in your cluster.
-
Traffic tapping: Copy contents of HTTP requests and responses to an external tap server.
-
Destination Selection: Various ways to select routes based on matching predicates.
-
Path Matching: Match requests to routes based on the context path
-
Header Matching: Matching based on incoming or generated headers
-
Query Parameter Matching: Request to route matching based on query parameters
-
HTTP Method Matching: Match requests to routes based on HTTP method
-
Destination Types: Once a route is matched, where does the request go?
-
Static Upstreams: Routing to explicitly and statically defined Upstreams
-
Discovered Upstreams: Route to a single Upstream automatically detected by Gloo Gateway's built-in discovery system
-
Multiple Destinations: Multiple Upstreams configured on a route, with weights associated with them.
-
Upstream Groups: Upstreams and weights are stored in a separate Upstream Group Custom Resource
-
Canary Release: Using phased roll-out across releases in a Canary release style workflow
-
Delegating with Route Tables: Delegate ownership of configuration to Route Tables for a given domain and path prefix
-
Kubernetes Services: Routing to services registered as Kubernetes Services through the API
-
Subsets: Routing to subsets of an Upstream
-
Consul Services: Routing to services registered in Consul service-discovery
-
AWS Lambda: Routing to AWS Lambda as an Upstream
-
Google Cloud Platform: Routing to Google Cloud Run as an Upstream.
-
AWS EC2 Instances: Routing to EC2 instances as an Upstream
-
REST Endpoint: Route to REST API endpoints discovered from a Swagger (OpenAPI) specification
-
HTTP2: Enabling HTTP/2 for Upstream communication.
-
gRPC: Routing to gRPC services with a gRPC client
-
Request Processing: Altering the contents of a request or response
-
Transformations: Use the Gloo Gateway Transformation API to transform requests and responses
-
HTTPS Redirect: Route HTTP traffic to HTTPS services
-
Host Redirect: Configure Gloo Gateway to redirect requests to a route instead of routing to a destination.
-
Direct Response Action: Respond with a direct response instead of being proxied to any backend
-
Health Checks: Enable a health check plugin to respond with common HTTP codes
-
Upstream Health Checks: Automatically monitor the status of Upstreams by configuring health checks for them
-
Faults: Inject faults into your services for resilience and chaos testing
-
Appending and Removing Request/Response Headers: Append and Remove Headers from Requests and Responses using Route configuration.
-
Prefix Rewrite: Prefix-rewriting when routing to upstreams
-
Regex Rewrite: Regex-rewriting when routing to upstreams
-
Timeouts: Implement upstream timeouts
-
Retries: Implement upstream retries when experiencing transient network errors
-
Shadowing: Enable traffic shadowing for the route.
-
About external processing: Learn about what external processing is, how it works, and how to enable it in Gloo Gateway.
-
Header manipulation: Walk through an example for how to manipulate request headers by using an ExtProc server.
-
Configuration Validation: (Kubernetes Only) Gloo Gateway can be configured to validate configuration before it is applied to the cluster. With validation enabled, any attempt to apply invalid configuration to the cluster will be rejected.
-
Admission control: (Kubernetes Only) Gloo Gateway can be configured to validate configuration before it is applied to the cluster. With validation enabled, any attempt to apply invalid configuration to the cluster will be rejected.
-
Replace Invalid Routes: (Kubernetes Only) Gloo Gateway can be configured to validate configuration before it is applied to the cluster. With validation enabled, any attempt to apply invalid configuration to the cluster will be rejected.
-
Buffering: Set buffering limits on different Gloo Gateway resources.