Kubernetes API server drops watch connections
Once you're certain your client properly handles disconnections, you can use the following kube-apiserver flag to control how long apiserver lets the watches stay open:
https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/admin/kube-apiserver.md
--min-request-timeout=1800: An optional field indicating the minimum number of seconds a handler must keep a request open before timing it out. Currently only honored by the watch request handler, which picks a randomized value above this number as the connection timeout, to spread out load.
Test with a small value, run in production with a large value.
Watches are supposed to drop periodically - they are just long HTTP GET operations underneath, with timeouts. It's intentional. Is it causing a problem?