<p>I will probably ask a stupid question ( after reading official kubernetes documentation), but here it is my question :</p>

<p>First, I setuped a kubeadm cluster with 3 stacked control plane nodes &amp; etcd + 1 load balancer (The etcd members and control plane nodes are co-located) + n worker.</p>

<pre><code># kubectl get nodes
NAME                                             STATUS   ROLES    AGE   VERSION
pp-tmp-test20.xxx   Ready    master   17h   v1.15.1
pp-tmp-test21.xxx   Ready    master   15h   v1.15.2
pp-tmp-test22.xxx   Ready    master   15h   v1.15.2
pp-tmp-test23.xxx   Ready    worker   14h   v1.15.2
pp-tmp-test24.xxx   Ready    worker   15h   v1.15.2
</code></pre>

<p>Is there a way to migrate from this topology to a "kubadm cluster with external etcd cluster" without delete my actual cluster. Migrate to
3 stacked control plane nodes + 3 etcd nodes + 1 load balancer + n worker.</p>

<p>Or I have to setup a new cluster ?</p>

<p>I think I found my answer in the official doc (<a href="https://k0s.io/docs/setup/independent/high-availability/" rel="nofollow noreferrer">https://k0s.io/docs/setup/independent/high-availability/</a>) :</p>

<p>"<strong>Before proceeding, you should carefully consider which approach best meets the needs of your applications and environment</strong>. This comparison topic outlines the advantages and disadvantages of each topology."</p>

<p>"Setting up a cluster with external etcd nodes is similar to the procedure used for stacked etcd <strong>with the exception that you should setup etcd first</strong>, and you should pass the etcd information in the kubeadm config file"</p>

<p>Thank you very much for the help</p>

<p>Best regards
Vincent</p>

Vincent
<p>Yes, you can setup etcd nodes now on external system and update the below parameters on kube-apiserver.yaml file. The manifest file should be available on /etc/kubernetes/manifests directory on the control plane nodes.</p>

<pre><code>     --etcd-servers=https://&lt;IP address of new etcd server&gt;:2379
</code></pre>
