Skip to content

Location based Load Balancing (cherry-pick #10720 from release-1.1 to master)#11256

Merged
istio-testing merged 2 commits intoistio:masterfrom
hzxuzhonghu:locality-lb-master
Jan 25, 2019
Merged

Location based Load Balancing (cherry-pick #10720 from release-1.1 to master)#11256
istio-testing merged 2 commits intoistio:masterfrom
hzxuzhonghu:locality-lb-master

Conversation

@hzxuzhonghu
Copy link
Copy Markdown
Member

  • Support Locality-weighted load balancing
    Allows administrators to control the distribution of traffic to endpoints based on the localities of where the traffic originates and where it will terminate. These localities are specified using arbitrary labels that designate a hierarchy of localities in {region}/{zone}/{sub-zone} form. For additional detail refer to https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/load_balancing/locality_weight

  • Implement locality aware routing based on Envoy lbEndpoints priority.
    By default traffic will be routed to endpoints in same {region}/{zone}/{sub-zone}, then failover to all in same {region}/{zone}, then failover to all in same {region}, at last failover to those in other regions. This is the typical expected behavior for most setups. The explicit Failover setting to a specific region allows admins to restrict the regionality of failover. Assume a service resides in zones within us-east, us-west & eu-west, when endpoints within us-east become unhealthy traffic should failover to endpoints within eu-west and similarly us-west should failover to us-east.

Implement locality aware routing based on Envoy lbEndpoints priority.
Traffic will be routed to endpoints in same subzone, then failover to all in same zone, then failover to all in same region. This is the typical expected behavior for most setups. The explicit failover to a specific region allows people to maintain traffic within the same country if desired.

Support Locality weighted load balancing.
In order to use this feature, DestinationRule.TrafficPolicy.LoadBalancer.LocalityWeightSettings has to be configured. Currently we support specifying each groups of locality endpoints with a weight.
For example , traffic
locality A --> locality A with 80%
locality A --> locality B with 10%
locality A --> locality C with 10%
@hzxuzhonghu hzxuzhonghu requested review from rshriram and removed request for andraxylia and kyessenov January 25, 2019 02:23
Copy link
Copy Markdown
Member

@rshriram rshriram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@istio-testing
Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hzxuzhonghu, rshriram

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@istio-testing istio-testing merged commit 3b46519 into istio:master Jan 25, 2019
@istio-testing
Copy link
Copy Markdown
Collaborator

@hzxuzhonghu: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
prow/istio-pilot-multicluster-e2e.sh f16d812 link /test istio-pilot-multicluster-e2e
Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu hzxuzhonghu deleted the locality-lb-master branch January 26, 2019 00:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants