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 | |
k8s-stable-1.22.5 | k8s-stable-localstorage-1.22.5 | |
k8s-stable-1.23.5 | k8s-stable-localstorage-1.23.5 |
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.

Let master nodes use one of the HMD flavors:

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.

The result will be a formed cluster NVMe:

What To Do Next
You can create your own Kubernetes cluster templates:
How to Create a Kubernetes Cluster Template Using Creodias OpenStack Magnum