in_kubernetes_events: support for net.* options including TCP keepalive settings #10487
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.
Support
net.*
options including TCP keepalive settings in thekubernetes_events
pluginThis allows the user to set net.* options in the
kubernetes_events
input plugin config. This is particularly useful for configuring TCP keepalive settings becausekubernetes_events
opens a watch on the Kubernetes API, which is a long-running connection that might see long periods of inactivity during which intermediate networking infrastructure like proxies might drop the connection silently. The Go K8s client sends keepalives automatically, e.g.kubectl get event -w
(which opens a watch on k8s events similar to thekubernetes_events
plugin) will send keepalives every 30s without the user having to configure anything (those will be HTTP/2 pings rather than raw zero-length TCP keepalives, but serves the same purpose).Testing
Before we can approve your change; please submit the following in a comment:
Sample config:
tcpdump extract:
Other config: Longer timeout (120s) to test reconnect
tcpdump:
As a consequence, fluent-bit recreates the connection and catches up on the events that might have happened in the meantime: