Consider LB internal connectivity for advertising VIPs via BGP #496
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
LB from now on announces its internal connectivity status by implementing Stream Forwarding Availability gRPC service.
The gRPC service by default uses unix socket, and the server socket is shared by LB and FE containers via a size limited emptyDir volume. (Note that TCP also works if env variables are re-configured, e.g.: tcp://127.0.0.1:5000)
The requirement for internal connectivity is 1 successfully configured application Target in the stateless-lb,
which also implies the underlying NSM connection has to be established. (Internal connectivity is followed
per stream, but 1 "working" stream with a fully configured application Target is sufficient.)
FE watches the collocated LB's internal connectivity via Stream Forwarding Availability Service Client, and only includes the VIPs in the BIRD configuration for BGP if the LB has working internal connectivity.
(Also, if internal connectivity ceases to work, FE withdraws the VIPs from the BIRD configuration denouncing the VIP addresses.)
Note:
Since an LB removes all its Streams (including the application Targets) if the collocated FE's external connectivity changes to down, its internal connectivity status will also change to down in such situation.
Issue link
#470
Checklist