Skip to Content

Default Kubernetes cluster templates in Creodias Cloud

There are six default Kubernetes cluster templates to choose from in a Creodias cloud:

Standard templates

localstorage templates

k8s-stable-1.21.5

k8s-stable-localstorage-1.21.5

k8s-stable-1.22.5

k8s-stable-localstorage-1.22.5

k8s-stable-1.23.5

k8s-stable-localstorage-1.23.5

In this article we give criteria when to use them and explain why localstorage templates may be a better fit for resources intensive apps.

What We Are Going To Cover

  • How to choose proper template

  • Overview and benefits of localstorage templates

  • Example of creating localstorage template using HMD flavors

Prerequisites

No. 1 Account

You need a Creodias hosting account with access to the Horizon interface: https://horizon.cloudferro.com.

No. 2 Private and public keys

To create a cluster, you will need an available SSH key pair. If you do not have one already, follow this article to create it in the OpenStack dashboard: How to create key pair in OpenStack Dashboard on Creodias.

No. 3 Documentation for standard templates

The links on the right lead to the documentation of Kubernetes versions that are delivered with each template:

k8s-stable-1.21.5

k8s-stable-localstorage-1.21.5

Kubernetes release 1.21

k8s-stable-1.22.5

k8s-stable-localstorage-1.22.5

Kubernetes release 1.22

k8s-stable-1.23.5

k8s-stable-localstorage-1.23.5

Kubernetes release 1.23

No. 4 Documentation for creation of Kubernetes clusters

The general procedure is explained in How to Create a Kubernetes Cluster Using Creodias OpenStack Magnum.

How to choose proper template

Standard templates k8s-stable-1.21.5, k8s-stable-1.22.5, k8s-stable-1.23.5 are general in nature and you can use them for any type of Kubernetes cluster. Each will produce a working Kubernetes cluster on Creodias OpenStack Magnum hosting.

For compatibility reasons, you may opt to use k8s-stable-1.21.5 and k8s-stable-1.22.5. For new clusters, use k8s-stable-1.23.5 as the latest available in the cloud.

If the application does not require a great many operations, then a standard template should be sufficient.

Overview and benefits of localstorage templates

NVMe stands for Nonvolatile Memory Express and is a newer storage access and transport protocol for flash and solid-state drives (SSDs). localstorage templates provision the cluster with Virtual Machine flavors which have NVMe storage available.

Each cluster contains an instance of etcd volume, which serves as its external database. Using NVMe storage will speed up access to etcd and it will, by definition, speed up cluster operations.

Applications such as day trading, personal finances, EODATA processing, AI and the similar, may have so many transactions that using localstorage templates may become a viable option.

Virtual machine flavors with NVMe have the prefix of HMD and they are resource-intensive:

openstack flavorlist
+--------------+--------+------+-----------+-------+
| Name         |    RAM | Disk | Ephemeral | VCPUs |
+--------------+--------+------+-----------+-------+
| hmd.xlarge   |  65536 |  200 |         0 |     8 |
| hmd.medium   |  16384 |   50 |         0 |     2 |
| hmd.large    |  32768 |  100 |         0 |     4 |

You would use an HMD flavor mainly for the master node(s) in the cluster.

Example parameters to create a new cluster with localstorage and NVMe

For general discussion of parameters, see Prerequisite No. 4. What follows is a simplified example, geared to creation of cluster using localstorage.

The only deviation from the usual procedure is that it is mandatory to add label etcd_volume_size=0 in the Advanced window. Without it, localstorage template won’t work.

Start creating a cluster with the usual chain of commands Container Infra -> Clusters -> + Create New Cluster.

In the screenshot below, we selected k8s-stable-localstorage-1.23.5 as our local storage template of choice, in mandatory field Cluster Template.

For field Keypair use SSH key that you already have and if you do not have it yet, use Prerequisite No. 2 to obtain it.

../_images/create_cluster_details.png

Let master nodes use one of the HMD flavors:

../_images/create_cluster_size.png

Proceed to enter the usual parameters into the Network and Management windows.

The last window, Advanced, is the place to add label etcd_volume_size=0.

../_images/create_cluster_advanced.png

The result will be a formed cluster NVMe:

../_images/create_cluster_working.png

What To Do Next

You can create your own Kubernetes cluster templates:

How to Create a Kubernetes Cluster Template Using Creodias OpenStack Magnum