Issue 1:
Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.):

What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.): gcloud update

Is this a BUG REPORT or FEATURE REQUEST? (choose one): FEATURE REQUEST

Kubernetes version (use kubectl version): all 😄

Environment:

Cloud provider or hardware configuration: GCE

OS (e.g. from /etc/os-release): all

Kernel (e.g. uname -a): all

Install tools:

Others:

What happened:

cluster/gce/util.sh uses the gcloud cli a lot and does a gcloud components update (in the commonly used function verify-prereqs) before doing things like kube-down. gcloud updates can introduce breaking changes (for example in the recent 132.0.0 release it removed a bunch of flags). This has caused cross-the-board test failures like #35654.

But this is not limited to just tests. Any kubernetes GCE users who rely on the kube-up and kube-down commands could have been broken.

What you expected to happen:

Stop updating gcloud automatically. We could either warn user to have the required dependencies installed, or pin to specific versions of dependencies like gcloud.

How to reproduce it (as minimally and precisely as possible):

download 1.4.4 release tarball

run kube-up and kube-down

Anything else do we need to know:

Issue 2:
Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.):

What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.):

Is this a BUG REPORT or FEATURE REQUEST? (choose one):

BUG REPORT

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.4", GitCommit:"3b417cc4ccd1b8f38ff9ec96bb50a81ca0ea9d56", GitTreeState:"clean", BuildDate:"2016-10-21T02:48:38Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}

Server Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.4", GitCommit:"3b417cc4ccd1b8f38ff9ec96bb50a81ca0ea9d56", GitTreeState:"clean", BuildDate:"2016-10-21T02:42:39Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}

Environment:

Cloud provider or hardware configuration: OpenStack

OS (e.g. from /etc/os-release): CoreOS

Kernel (e.g. uname -a): Linux 4.6.3-coreos

Install tools:

Others:

What happened:

We have a load balancer between apiserver and etcd cluster. The load balancer shutdowns idle watch connection after certain time out. It looks like apiserver does not like this, and it spills WARNING level log like this:

W1116 04:33:15.614498 32646 reflector.go:330] pkg/storage/cacher.go:194: watch of *api.ReplicationController ended with: client: etcd cluster is unavailable or misconfigured

The error message "etcd cluster is unavailable or misconfigured" is a bit misleading in this situation.

What you expected to happen:

Getting EOF from remote server in idle connection is not really an error, so WARNING level is too harsh. It would be nice to silence it by changing log level to INFO if the cause of watch error is EOF.

How to reproduce it (as minimally and precisely as possible):

Configure load balancer between apiserver and etcd, and make its idle timeout to 60 seconds or something.

Anything else do we need to know: