Issue Report
Bug
In recent Kubernetes, e.g. v1.6.2_coreos.0
, the api server will try and talk to etcd using version 3 of the protocol. By default, CoreOS ships with version 2 of etcd. As a result, the api server will fail to start.
It took some time to find the issue, where the simple solution is to add the --storage-backend=etcd2
option to /etc/kubernetes/manifests/kube-apiserver.yaml
.
The CoreOS documentation should be updated to suit, until CoreOS starts shipping etcd3 by default.
I encountered this error after upgrading the Kubernetes image in my configuration and it failed to restart.
Container Linux Version
$ cat /etc/os-release
NAME="Container Linux by CoreOS"
ID=coreos
VERSION=1353.7.0
VERSION_ID=1353.7.0
BUILD_ID=2017-04-26-2154
PRETTY_NAME="Container Linux by CoreOS 1353.7.0 (Ladybug)"
ANSI_COLOR="38;5;75"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://issues.coreos.com"
Environment
Bare metal server.
Expected Behavior
K8s api server should start based on the CoreOS documented configuration.
Actual Behavior
Api server fails to start because it needs to be configured with the etcd2 backend.