Edge-LB proxies and load balances traffic to all services that run on DC/OS. Edge-LB provides both North-South (external to internal) load balancing, while the Minuteman component provides East-West (internal to internal) load balancing.
Edge-LB leverages HAProxy, which provides the core load balancing and proxying features, such as load balancing for TCP and HTTP-based applications, SSL support, and health checking. In addition, Edge-LB provides first class support for zero downtime service deployment strategies, such as blue/green deployment. Edge-LB subscribes to Mesos and updates HAProxy configuration in real time.
Edge-LB runs as a DC/OS service launched by Marathon. The API server component of Edge-LB launches the load balancer pool(s). From the perspective of Marathon, the pool is another DC/OS service.
The diagram below shows how configuration and outside requests flow through Edge-LB to the application backend tasks.
Configuration is sent to the API Server, which controls pool management.
Outside traffic moves through a hardware load balancer, then to the load balancer pool. One of the Edge-LB load balancers in the pool accepts the traffic and routes it to the appropriate service within the DC/OS cluster.
The service that responds to CLI commands and manages pools.
An Edge-LB pool is a group of identically configured load balancers. Traffic to the pool is balanced among the load balancers within the pool. The load balancer pool manages properties such as the number of load balancer instances and their placement.
The pool is the smallest unit of load balancer configuration within Edge-LB. The load balancers within the same pool are identical. You can configure Edge-LB to have multiple load balancer pools with different configurations.
The individual instances of the load balancer software (e.g., HAProxy). These accept traffic and route it to the appropriate services within the DC/OS cluster.
Multiple Edge-LB Instances
Multiple Edge-LB pools can be configured across multiple DC/OS public nodes to create a highly-available load balancing environment and to support increased throughput. There are two primary external architectures that support this:
- External Load Balancer: Configure multiple Edge-LB pools such that the Edge-LB load balancers that are on DC/OS public nodes are behind an external load balancer. Direct end users or clients to the external load balancer device, which will then load balance the traffic between the multiple Edge-LB pools. The external load balancer can be a cloud-based load balancer, such as an AWS Elastic Load Balancer (ELB), an Azure Load Balancer, or a physical load balancer such as an F5 or Cisco ACE device.
- Round Robin DNS: Configure DNS such that a single DNS entry responds with IP addresses corresponding to a different Edge-LB pool. The DNS will round robin between the VIPs for each Edge-LB pool.
Edge-LB Release Notes
Release notes for Edge-LB.…Read More
Configure a service account and install the Edge-LB package using the instructions below.…Read More
Uninstall the Edge-LB package with these instructions.…Read More
Perform an Edge-LB upgrade by following this procedure.…Read More
Pool configuration file format information.…Read More
Service account and user permissions required to use the Edge-LB package.…Read More
This page covers common commands for Edge-LB usage. For a more detailed list of CLI commands, consult the dcos edgelb cli reference.…Read More
The tutorials in this section cover using Edge-LB to expose a service outside of the cluster, how to install and configure multiple instances for high availability, and how to use Edge-LB to perform a blue/green service update.…Read More
This is a reference for all CLI commands available in the Edge-LB package.…Read More
Edge-LB API Reference
This is a reference for all API endpoints exposed by the Edge-LB package.…Read More
Edge-LB Pool Config Reference
This is a reference for all possible Edge-LB pool configuration values as well as some examples to demonstrate various use-cases.…Read More