Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • APIs and Business logic - Alena Prokharchyk
  • Backend - TBA
  • UI - TBA

Glossary

  • Internal LB - the load balancing between internal (guest) cloudStack networks
  • Internal LB Rule- Load balancer rule with the front end IP from Internal (Guest) cloudStack network.
  • Internal LB VM - cloudStack system vm managing internal LB Rules

...

TBD. We might need a separate template/set of scripts for this kind of vmInternal LB VM, or we can re-use the existing VR template.

...

  • Add new manager - InternalLoadBalancerManagerImpl (name is TBD). This class will be responsible for managing Internal LB rules.
  • The LBRule can be created with or without specifying the source IP address. In this case we acquire IP address from the Guest network and start new Internal LB vm for the IP addressIf no source IP address is specified, the new one will get acquired automatically from the guest network, and assigned to the LB rule. If provider is InternalLBVM:
  • A new InternalLBVM should be spanned as soon as the guest new source IP address is acquired by the LB rule. This code should be handled by InternalLBNetworkApplianceManager.The VM gets created with 2 interfaces: eth0 - linkLocal (private in VMWare case), eth1 - the IP address of the LB rule See more details on the VM in "InternalLBVM management and life cycle" section.
  • There is going to be 1 Internal LB vm spanned per guest IP address participating in the Internal Load Balancing. If more rules are added for the same IP, they will be managed on the same InternalLBVM.If LB provider is Netscaler VPX:
  • TBD
Backend changes

TBD. Have to put HA proxy management/configuration details here

...

API Name

Request Parameters

Response parameters

Available to regular user

createLoadBalancingRule

New parameters: 

  • schema (String enum, optional with External/Internal choices; optional; =External by default)
  • sourceIpAddress (String, optional, can be used only with networkId conjunction)  If networkId=(guestNetworkId of the network where internal LB is supported) is passed in w/o sourceIpAddress param,   
    the IP address from the guest network will get acquired on the fly and be assigned to the Load Balancing Rule. 

New parameters:

  • schema
  • sourceIpAddress

yes

listLoadBalancingRules

New parameters:

  • schema
  • sourceIpAddress

New parameters:

  • schema
  • sourceIpAddress

yes

...

In 4.2 this API will return only Allocated IP addresses.

Internal Load Balancing Vm management and life cycle

The VM gets created with 2 interfaces: eth0 - linkLocal (private in VMWare case), eth1 - the IP address of the LB rule.

Vm life cycle:

  • Create: InternalLBVM gets created when the first Load Balancing Rule is created for the IP address
  • Destroy: InternalLBVM gets destroyed when the last Load Balancer is removed for the IP address
  • Reboot: InternalLBVM can be rebooted as a regular system vm using RebootSystemVm API.
  • List: InternalLBVM can be listed with ListSystemVMs API

...