title: adding master to Kubernetes cluster: cluster doesn't have a stable controlPlaneEndpoint address
body: <p>How can I add a second master to the control plane of an existing Kubernetes 1.14 cluster?
  The <a href="https://kubernetes.io/docs/setup/independent/high-availability/#manual-certs" rel="nofollow noreferrer">available documentation</a> apparently assumes that both masters (in stacked control plane and etcd nodes) are created at the same time. I have created my first master already a while ago with <a href="https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#initializing-your-master" rel="nofollow noreferrer"><code>kubeadm init --pod-network-cidr=10.244.0.0/16</code></a>, so I don't have a <code>kubeadm-config.yaml</code> as referred to by this documentation.</p>
  
  <p>I have tried the following instead:</p>
  
  <pre><code>kubeadm join ... --token ... --discovery-token-ca-cert-hash ... \
    --experimental-control-plane --certificate-key ...
  </code></pre>
  
  <p>The part <code>kubeadm join ... --token ... --discovery-token-ca-cert-hash ...</code> is what is suggested when running <code>kubeadm token create --print-join-command</code> on the first master; it normally serves for adding another worker. <code>--experimental-control-plane</code> is for adding another master instead. The key in <code>--certificate-key ...</code> is as suggested by running <a href="https://stackoverflow.com/a/55850990/9164810"><code>kubeadm init phase upload-certs --experimental-upload-certs</code></a> on the first master.</p>
  
  <p>I receive the following errors:</p>
  
  <pre><code>[preflight] Running pre-flight checks
  [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. 
  The recommended driver is "systemd". Please follow the guide at 
  https://kubernetes.io/docs/setup/cri/
  [preflight] Reading configuration from the cluster...
  [preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
  error execution phase preflight: 
  One or more conditions for hosting a new control plane instance is not satisfied.
  
  unable to add a new control plane instance a cluster that doesn't have a stable
  controlPlaneEndpoint address
  
  Please ensure that:
  * The cluster has a stable controlPlaneEndpoint address.
  * The certificates that must be shared among control plane instances are provided.
  </code></pre>
  
  <p>What does it mean for my cluster not to have a stable <code>controlPlaneEndpoint</code> address? Could this be related to <code>controlPlaneEndpoint</code> in the output from <code>kubectl -n kube-system get configmap kubeadm-config -o yaml</code> currently being an empty string? How can I overcome this situation?</p>