kubernetes : migrate from "stacked control plane + etc nodes" to "cluster with external etcd nodes"

8/8/2019

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

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

# 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

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.

Or I have to setup a new cluster ?

I think I found my answer in the official doc (https://k0s.io/docs/setup/independent/high-availability/) :

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

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

Thank you very much for the help

Best regards Vincent

-- Vincent
etcd
kubernetes

1 Answer

8/8/2019

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.

     --etcd-servers=https://<IP address of new etcd server>:2379
-- Subramanian Manickam
Source: StackOverflow