Does the load balancer automatically stop directing new connections to machines that will be shut down and wait for existing connections to finalize before shutting the old machines down?
Hi @yinshen ,
Correct. This uses an operation called “cordoning”:
- The new machines (green) are created in a cordoned state where they get no requests from the proxy.
- Once the green machines are healthy, they are uncordoned, and at the same time
- the blue machines (old/existing) get cordoned. They will not get any more requests from the proxy, but existing connections/requests are not broken.
- Blue machines are immediately signaled to stop (how this works), given up to
kill_timeoutseconds to finish handling existing connections and work, and then are forcibly shut down and destroyed.
The proxy won’t explicitly “wait for the existing connections to finalize”. It signals the app to stop, and it’s up to the app to wrap up its work within kill_timeout.
Let me know if this helps.
- Daniel
3 Likes
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.