Destination Types
As we saw in the Destination Selection section, Routes in Gloo Edge contain a Matcher to determine if a request should be passed along the route. If a route is matched, then the route also specifies an action to take: routing to one or more destinations, redirecting, or returning a direct response.
In this section, we’ll take a deeper look at different ways to specify route destinations. Most commonly, a route destination is a single Gloo Edge Upstream. It’s also possible to route to multiple Upstreams, by either specifying a multi destination, or by configuring an Upstream Group. Finally, it’s possible to route directly to Kubernetes or Consul services, without needing to use Gloo Edge Upstreams or discovery.
When routing to an Upstream, you can take advantage of Gloo Edge’s endpoint discovery system, and configure routes to specific functions, such as a REST endpoint, a gRPC service, or a cloud function like AWS Lambda.
The full list of destination guides is listed below. We recommend starting with Static Upstreams, and then evaluating more complex route destination types based on your needs.
-
Static Upstreams: Routing to explicitly and statically defined Upstreams
-
Discovered Upstreams: Route to a single Upstream automatically detected by Gloo Edge'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
-
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