Create a cluster

Create a Cluster

Context

MetaKube clusters are created within a MetaKube project. The nodes, load balancers and volumes are created in your SysEleven Stack project (or in your AWS account).

Further tutorials will require a working MetaKube cluster.

Prerequisites

In order to create a cluster, you need to have the "Owner" or "Editor" role in a MetaKube project.

Steps

To create a new cluster, select a MetaKube project from the login page and click the button entry Add Cluster.
Clusters are tied to a Project.

You can create as many clusters within one project as you want.

Provider and Data Center

Choose the provider and the region in which you want to create your cluster.

Start by choosing a cloud provider and region, then click Next:

Overview of cluster creation

Cluster

Choose a name and the Kubernetes version for your cluster.

The mandatory fields are:

  • Cluster: the human-readable name of your cluster.
  • Version: the Kubernetes version which will be used for the cluster. This version can be upgraded in an existing cluster, whenever an upgrade is available.
  • Container Runtime: either "containerd" (default) or "docker" (deprecated, not supported for Kubernetes >= 1.22)

Overview of cluster settings

Settings

In the next step, enter your cloud credentials to authenticate against the cloud provider.

We recommend to use application credentials, since they are easier to rotate and will not be invalidated if you change your user password in the SysEleven Stack.

If you use username and password for your SysEleven Stack, the list of available projects will be loaded.
Application credentials are already bound to the project in SysEleven Stack in which they have been created, so you don't have to choose it again.

The floating IP pool from SysEleven Stack will be ext-net unless you have requested a custom public IP range.

The fields with advanced settings do not need to be filled in. By default, MetaKube will automatically set up the following resources for a new cluster:

  • Network metakube-<cluster id> with IPv4 subnet metakube-<cluster-id> with subnet CIDR 192.168.1.0/24
  • Security group metakube-<cluster-id> for the worker nodes with all necessary rules
  • Server group metakube-<cluster-id> with soft-anti-affinity to spread nodes across different hardware nodes

If you want to specify advanced settings, refer to advanced cluster configuration.

Overview of cluster settings

Initial Nodes

For node settings we recommend at least 3 nodes sized m1.small or bigger. For an overview of the possible node flavors see the SysEleven Stack documentation. It is also possible to choose the operating system and image used for your worker nodes:

Overview of cluster settings with highlighted node section

We provide Ubuntu and Flatcar for your cluster nodes OS, with Ubuntu as default. You can also choose a different image available at your Openstack tenant. To get a list of base images, navigate to Project -> Compute -> Images in the SysEleven Stack dashboard:

Overview of openstack images

Make sure to enter the exact name of the image you want to run on your machines, as listed in the images tab of the SysEleven stack dashboard. See also supported operating systems.
The chosen SSH key added in the Cluster tab will be used for authentication for the default user (e.g. ubuntu for Ubuntu images) on all worker nodes.

Summary

The summary screen gives you an overview of the data you provided in the previous tabs and some of the default values which will be used for the cluster generation.

Just click Create Cluster for the actual generation.

The process might take a few minutes during which the status of all components will gradually change to green
Please note that "CoreDNS" might get a red status for a while, but will switch to green, once the first nodes have joined the cluster.

Validation

After all the control plane components are ready, your cluster will create the configured number of worker nodes in your SysEleven Stack tenant. Fully created nodes will be marked with a green dot, pending ones with a yellow circle. You can then download the kubeconfig by clicking the button Download Config to be able to use kubectl with your cluster. After all nodes are created you can use kubectl to view and check the status of the created nodes:

$ kubectl get nodes
NAME                        STATUS   ROLES    AGE   VERSION
tutorial-5bd864df7c-hvbkl   Ready    <none>   63m   v1.23.8
tutorial-5bd864df7c-hztvf   Ready    <none>   63m   v1.23.8
tutorial-5bd864df7c-x586s   Ready    <none>   63m   v1.23.8