Add Seed Cluster

Add New Seed Cluster to Existing Master

1. Install Kubernetes Cluster

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.

2. Install KKP on Seed 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.

Edit Existing kubeconfig of the KKP Master

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.

Edit Existing datacenters.yaml of the KKP Master

Add 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.

Create a Configuration for KKP Seed

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:

  • install tiller on it
  • install nodeport-proxy when running on a cloud provider
  • install minio for storing etcd snapshots
  • install KKP like below

Install 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.