Our live-1 load balancer doesn't have cross-zone load-balancing enabled. I think that means traffic gets distributed like this:
Internet traffic
|
+-----------+-----------+
| | |
+--+----+ +---+---+ +---+---+
|LB node| |LB node| |LB node|
| 2a | | 2b | | 2c |
+--+----+ +---+---+ +---+---+
| | |
| | |
+---+----+ +---+----+ +---+----+
| worker | | worker | | worker |
| nodes | | nodes | | nodes |
| 2a | | 2b | | 2c |
+--------+ +--------+ +--------+
With cross-zone enabled, traffic should be distributed like this:
Internet traffic
|
+-----------+-----------+
| | |
+--+----+ +---+---+ +---+---+
|LB node| |LB node| |LB node|
| 2a | | 2b | | 2c |
+--+----+ +---+---+ +---+---+
| | |
+-----------+-----------+
|
+-----------+-----------+
| | |
+---+----+ +---+----+ +---+----+
| worker | | worker | | worker |
| nodes | | nodes | | nodes |
| 2a | | 2b | | 2c |
+--------+ +--------+ +--------+
This is a minor improvement, but worth having.
If we change the value of the "Cross-Zone Load Balancing" parameter via terraform, does the load-balancer get replaced (i.e. will there be downtime for our services)?
Changing the value of the flag in the AWS console, during an ab
batch test,
does not result in any errors.
kops edit cluster
As per this file, amend the spec.api.loadBalancer
configuration like this:
spec:
api:
loadBalancer:
type: Public
crossZoneLoadBalancing: true
kops update cluster --yes
This doesn't require a rolling update.
I did this while running an ab
batch test, and viewing the load-balancer in the AWS console.
It didn't cause any errors or downtime.