Kubermatic Kubernetes Platform (KKP) makes full use of Kubernetes cluster to organize and scale workloads, depending on your and your customer’s needs. On a high level we differentiate between the Master Cluster, Seed Clusters, and User Clusters.
The Master Cluster is a Kubernetes cluster which is responsible for storing the information about users, projects, SSH keys and credentials for infrastructure providers. All sensitive information is stored in etcd, which is split across the nodes of the master cluster.
It hosts the KKP components and might also act as a seed cluster.
The KKP components are the
- KKP API
- KKP Controller Manager
The Seed Cluster is a Kubernetes cluster which is responsible for hosting the master components of a user cluster including credentials for the available infrastructure providers. All sensitive information is stored in etcd, which is split across the nodes of the seed cluster.
The seed cluster uses namespaces of Kubernetes to logically separate resources from each other. KKP will install the master components of a Kubernetes cluster within each namespace, plus a light monitoring stack consisting of Prometheus and an OpenVPN server to allow secure communication between the master components in the seed cluster and the pod/service network of the worker nodes.
The User Cluster is a Kubernetes cluster created and managed by KKP.
KKP has the concept of Datacenters, for example “AWS US-East”, “DigitalOcean Frankfurt” or a local vSphere deployment. Datacenters are used to specify where user clusters can be created in, so you can choose to only support running user clusters on AWS.
In a typical small-scale setup, pictured below, a single cluster contains KKP and the master components for every user cluster.
Instead of running the KKP master and seed components in a single cluster, it is advisable for large-scale deployments to have multiple, dedicated seed clusters, as pictured below.
This setup is useful for keeping the latency between the master components of a user cluster and the worker nodes as small as possible, improving the Kubernetes performance for customers. In this setup, the supported datacenters are assigned to a single seed, for example
seed-us on GKE in
us-east1 supports creating clusters in
- AWS us-east-2 and us-west-1
- Google Cloud us-east1 and us-west1
- DigitalOcean New York 1
seed-eu on Amazon EC2 in
eu-west-1 supports creating clusters in
- AWS eu-central-1 and eu-west-1
- DigitalOcean ams1 and lon1
See the installation documentation for more details on how to setup datacenters.