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.