feat: add gRPC keepalive server parameters #52
Merged
+252
−37
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.
Reason
Due to the nature of HTTP/2 of keeping persistent connections, the usage of the default gRPC Keepalive parameters may become a problem when dealing with k8s autoscaling. The possibility of setting up
MAX_CONNECTION_AGE
server parameter also enables others client capabilities, such as gRPC client load balancing (1, 2) (without service mesh, such as Istio).Description
This PR proposes the addition of configurable gRPC server Keepalive parameters.
As the environment variables and
keepalive.ServerParameters
struct fields are optional, Deckard's previous behavior will remain the same.References