The heapster sink does not handle error conditions very well. We need to have the Heapster sink be more robust so that it doesn't automatically cause the Heapster container to be terminated if an error occurs due to the sink.
Heapster itself is fairly robust in that it can handle the situation where it can't access the metrics from the kubernetes master. It will still continue to try and connect even in situations where it cannot access the master url or it does not have the permissions to access the endpoint. This allows use to inspect the heapster logs, and then determine if we just need to add permission to the SA for heapster to start populating metrics again.
Services may become available after heapster starts, they may stop when heapster is still running and then come back online, permissions may be changed, etc. We need to properly handle these situations.