How do I create a Kubernetes Cluster?
MoonQubes Kubernetes is made to be extremally customizable so that it can meet every person's needs. OpenStack Magnum backs our clusters, so our Kubernetes clusters are currently limited to the following supported Kubernetes versions.
OpenStack Version | Kubernetes Version |
Yoga | v1.23.3 |
More versions will become available as OpenStack Magnum updates are applied.
To deploy a cluster, we recommended creating an API User before creating the cluster to avoid confusion. You will also need an SSH key to use for the Kubernetes Master and Nodes.
Creating the Cluster
Go to Cloud -> Kubernetes and click the Plus in the bottom right to start the Cluster Creation.
To get your configuration started, input a name for your Cluster. Next, uncheck Auto generate OpenStack API user to use a user you have already created. This is to avoid having to reset the API Users password since you will not know the password of the Auto-Generated user and so you know which API User has access to your Kubernetes Cluster.
- From the OpenStack API user dropdown, select your API User
- Input your API Users password into the OpenStack API User Password
- Select the desired cluster template from the dropdown
Cluster Template Options
MoonQube provides access to many configuration options for Kubernetes, so we understand this can be daunting to set up. The below options and our default provided templates will take most of the confusion out of the equation for you, and if there are still questions, you can always reach out to our support team. You can create your own Cluster Templates for full control for all customization options.
Master Count
The Master Count can not be changed after cluster creation
A Kubernetes Master Node holds the configuration and state data used to maintain the desired state. This is also known as the Kubernetes Control Plane. These nodes talk to the Worker Nodes, also known as Nodes, to ensure all containers are scheduled efficiently.
For a production workload, we recommend at least 2 Master nodes with the Master Load Balancer (LB) enabled to ensure redundancy if a Master node fails or ensure high availability during cluster upgrades.
Node Count
These nodes are the Worker Nodes where all your pods run. You can assign any number of nodes here to fit your cluster size. The minimum size of a cluster is one, but you will not have any redundancy in case of a node failure or during cluster upgrades.
Node Count can be increased or decreased to resize the cluster after the cluster is deployed.
For a production workload, we recommend a minimum of three nodes.
Docker Volume Size
The size in GB for the local storage on each server for the Docker daemon to cache the images and host the containers. Cinder volumes provide the storage. The default in MoonQube provided templates is 20 GB.
You can reduce this Volume Size to decrease cluster costs and manually extend these volumes for each node in the cluster manually if more space is needed.
Keypair
This SSH keypair will be added to every node in the cluster, so if needed, you will be able to SSH into the master and worker nodes.
Node Flavor
The size of Qube you want your worker nodes to be. Visit our pricing page for a detailed list of all Qube's prices and specifications.
Node Flavor can not be changed after cluster creation. You can only increase or decrease the number of Worker nodes.
Master Node Flavor
The size of Qube you want your master nodes to be. Visit our pricing page for a detailed list of all Qube's prices and specifications.
Master Node Flavor can not be changed after cluster creation.
Floating IP Enabled
This option will assign Floating IPs to every component of your Kubernetes cluster. Keep in mind these floating IPs will be public-facing and can lower the security of your cluster. At a minimum, you will need a Floating IP assigned to either the Master Node or, in a Highly Available setup, the Master Node Load Balancer for remote access.
Each Floating IP will increase the cluster cost per month by $5 due to IPv4 prices.
For remote access and security, we would recommend using a Qube as a bastion to access the private subnet created for your cluster to run kubectl.
Master Load Balancer (LB)
The Master Load Balancer is used in a Highly Available setup to route requests to the Kubernetes control plane.
Adding a load balancer will increase the cluster's monthly cost by $5
Using Floating IP for Load Balancers
This option will assign a Floating IP to Load Balancers deployed by the cluster. Instead of using the IP assigned to the Load Balancer, a Floating IP will be assigned instead. This is for High Availability use cases where you need a load balancer always to be up and accepting requests.
Labels
Labels are key/value pairs that are attached to the cluster at creation. More labels can be created and deployed after cluster creation.
Cluster Creation
After all the above options are selected, you can click Create. Deploying the cluster will take a while as it deploys each component individually and verifies each component.