You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 6
Next »
Introduction
This documents gives an overview to the design and functional implementation for Internal Load Balancing on VPC tiers.
Feature developers:
- APIs and Orchestration level - Alena Prokharchyk
- Backend - to be assigned
Use case
There are 2 tiers in the VPC - Web tier A and Application tier B. Traffic to Web tier is balanced on the VPC VR on the public side. Admin wants traffic coming from LB to App tier to be balanced as well. Load balancing on the APP tier will be covered by the Internal LB feature.
The general flow
- Create tier B using network offering with Service=Lb, Provider=InteralLBVm
- Acquire guest IP address - Ip1 - from the tier B.
- Create Internal Load Balancer LB1 for Ip1, public port 80, private port 80. The new internal LB VM starts up with the Ip1.
- Add vm1 to the LB1. A new Internal LB with IP1 starts up, and the rule for Ip1/VM1/ports 80:80 is configured inside the HA proxy
- Add vm2 to the LB1. The rule for IP1/VM2/80:80 is configured inside the HA Proxy
- Create Internal Load Balancer LB2 for IP1, public port 81, private port 81. No need to start a new Internal LB vm as it's been already started for IP1.
- If you want to manage access from tier A to tier B, setup Network ACLs
API and orchestration level
New APIs:
- createInternalLoadBalancerRule (has all parameters listed in our regular createLBRule api except for the publicIpId). NetworkId will be required.
- deleteInternalLoadBalancerRule
- listInternalLoadBalancerRules
create/list APIs should return IP that is acquired automatically as a part of LB creation.
Existing LB APIs should be supported to add user vms to the LB.
- assignToLBRule
- removeFromLBRuleAs we are going to support LB on the public side on the VPC with the VPC VR as a provider, so we need a separate service/provider to support internal LB on the VPC - InternalLb service and InternalLb provider. Have to define these providers in the VPC offering as well as on the Network offering.
DB
New tables
TBD
Upgrade
Either have to upgrade existing default VPC/Network offering with the new Provider for LB service, or create a new default one having Internal LB provider in place.
Backend
TBD by the backend engineer
Limitations
- Internal and Public Lb are mutually exclusive on a tier. If the tier has LB on the public side, then it can't have the Internal LB
UI
TBD