First, you need to install Kubernetes cluster with some additional components. After the installation of Kubernetes you will need a copy of the kubeconfig to create a configuration for the new Kubermatic Kubernetes Platform (KKP) master/seed setup.
To aid in setting up the seed and master clusters, we provide kubeone which can be used to set up a highly-available Kubernetes cluster. Refer to the kubeone readme and docs for details on how to use it.
Please take note of the recommended hardware and networking requirements before provisioning a cluster.
First, you will need to update your values.yaml and use this file to update the kubermatic chart on the master cluster using helm. Afterwards, you will need a part of master values.yaml e.g. values-seed.yaml and install Kubermatic in the seed cluster with this values.
Add a second cluster to the kubeconfig by providing the cluster, context and user information:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ...
name: ...
Add a second context to the contexts section:
- context:
cluster: ...
user: ..
name: ...
Add a second user to the users section:
- name: ...
user:
client-certificate-data: ...
client-key-data: ...
token: ...
Make sure to provide static, long-lived credentials. Temporary credentials created by authentication providers (like on GKE or EKS) will not work.
datacenters.yaml of the KKP MasterAdd a second seed cluster to the datacenters.yaml. You can change some of the existing data centers to have a new seed. Now put the new base64 encoded values for datacenters: ... and kubeconfig: ... into your values.yaml with configuration for KKP.
For the seed cluster, you need a stripped version of the values.yaml, you can see an example here
After the configuration file is created, you can install KKP to the cluster. You will need some additional services:
tiller on itnodeport-proxy when running on a cloud providerminio for storing etcd snapshotsKKP like belowInstall KKP on the new seed cluster with the new values-seed.yaml:
helm upgrade --install --wait --timeout 300 --values values-seed.yaml --namespace kubermatic kubermatic charts/kubermatic/
Update the master cluster:
helm upgrade --install --wait --timeout 300 --values values.yaml --namespace kubermatic kubermatic charts/kubermatic/
The second seed cluster is now installed.