...
9. Considering the HA, traffic controller should instantiate at least 2 of those plugins, and should be
able to monitor the health of those instances of plugins. when any of instances is down, traffic controller
can restart/recreate one for it again.
LoadBalancer (aka GSLB/LB controller?)
LBer(GSLB(Geo-replicated Services LB/LB controller) is used to balance incoming load across multiple istio-ingress-gateways.
It shall be able to be aware
of the run-time load of various working uService instances which are distributed on different
edge clouds or the general
load level of each kind of uService in each edge cloud by interacting with actual LB(e.g. metallb,
or other module except metallb)
running on one edge cloud. Metallb is responsible for the load balance jobs between instances
of uService within an edge cloud,
while LBerGSLB(controller) shall be in charge of guiding the traffic load to multiple edge clouds. LBer
GSLB(LB controller) should be aware of
of the public IPs (achieved by using metallb? or SDWAN?) of all edge clouds.
GSLB(LB controller) get requests from external users, and it evaluates the load level of the uServices that the user want to access
on various edge clouds, and then choose one certain edge cloud on which the targeted(or a set of) uService instance is running,
next GSLB returns the domain name of the chosen uService instance to users, so users can utilize this new domain name to access
their expected uService. These steps mentioned above imply that those domain names associated with different uServices distributed
on edge clouds should point to the IP address of center cloud on which GSLB is running first, after GSLB figure out to which edge cloud
the users' request should be forwarded, the real domain name of uServices is given back to users by GSLB.
....
Sequence flows
Test cases
...