<p>Hope someone can help me.
To describe the situation in short, I have a self managed k8s cluster, running on 3 machines (1 master, 2 worker nodes). In order to make it HA, I attempted to add a second master to the cluster.
After some failed attempts, I found out that I needed to add <code>controlPlaneEndpoint</code> configuration to kubeadm-config config map. So I did, with <code>masternodeHostname:6443</code>.</p>
<p>I generated the certificate and join command for the second master, and after running it on the second master machine, it failed with</p>
<pre><code>error execution phase control-plane-join/etcd: error creating local etcd static pod manifest file: timeout waiting for etcd cluster to be available
</code></pre>
<p>Checking the first master now, I get connection refused for the IP on port 6443. So I cannot run any kubectl commands.<br />
Tried recreating the .kube folder, with all the config copied there, no luck.<br />
Restarted kubelet, docker.<br />
The containers running on the cluster seem ok, but I am locked out of any cluster configuration (dashboard is down, kubectl commands not working).<br />
Is there any way I make it work again? Not losing any of the configuration or the deployments already present?<br />
Thanks! Sorry if it’s a noob question.</p>
<p>Cluster information:</p>
<pre><code>Kubernetes version: 1.15.3
Cloud being used: (put bare-metal if not on a public cloud) bare-metal
Installation method: kubeadm
Host OS: RHEL 7
CNI and version: weave 0.3.0
CRI and version: containerd 1.2.6
</code></pre>

<p>This is an old, known problem with Kubernetes <code>1.15</code> <sup>[<a href="https://github.com/kubernetes/kubeadm/issues/1712" rel="nofollow noreferrer">1</a>,<a href="https://github.com/kubernetes/website/issues/15637" rel="nofollow noreferrer">2</a>]</sup>.<br />
It is caused by short etcd timeout period. As far as I'm aware it is a hard coded value in <a href="https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/util/etcd/etcd.go#L41-L43" rel="nofollow noreferrer">source</a>, and cannot be changed (feature request to make it configurable is open for version <a href="https://github.com/kubernetes/kubeadm/issues/2463" rel="nofollow noreferrer"><code>1.22</code></a>).<br />
Your best bet would be to upgrade to a newer version, and recreate your cluster.</p>
