-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
podtailer does not handle unclean shutdown of watcher #416
Comments
probably something wrong in https://github.com/honeycombio/honeycomb-kubernetes-agent/blob/main/k8sagent/watcher.go logic but I'm not 100% sure what yet. |
https://github.com/kubernetes/client-go/blob/v0.26.3/tools/cache/reflector.go#L347 the problem is here, client connection lost is not marked as retryable. ah, but if the apiserver has gone away, we can't retry it, because the new apiserver won't have a record of our watch, so we have to set it up again from the start. now I understand. |
https://github.com/honeycombio/honeycomb-kubernetes-agent/blob/main/k8sagent/watcher.go#L172 assumes it will never stop, and does not need restarting in case of error, but my investigation has determined that the watcher will terminate on fatal error (eg apiserver shutdown); thus we need to re-initialise and start it back up again if it terminates. |
Versions
v2.7.2
Steps to reproduce
Additional context
It appears we retry failure to create a new watcher on a pod being instantiated, but we do not retry watching if an existing watcher stops.
The text was updated successfully, but these errors were encountered: