MicroK8s
MicroK8s is a lightweight Cloud Native Computing Foundation (CNCF) certified Kubernetes distribution developed by Canonical. It deploys all Kubernetes services in a single, fully contained package, while also offering out-of-the-box add-ons.
Palette offers MicroK8s as Kubernetes distribution available for creating clusters. You can use MicroK8s as the Kubernetes layer when creating cluster profiles and then use the cluster profiles to deploy clusters.
Support Lifecycle
We support different Kubernetes distributions, such as MicroK8s, K3s, and RKE2, until their official End-of-Life (EOL). The EOL is set by the respective owner. Once we stop supporting the minor version, we initiate the deprecation process. Refer to the Kubernetes Support Lifecycle guide to learn more.
Versions Supported
- 1.27.x
- 1.26.x
- Deprecated
Prerequisites
-
A minimum of 20 GB of disk space and 4 GB of memory.
-
Operating System (OS) pack layer and infrastructure provider dependencies as listed in the table below.
Infrastructure Platform OS Version Supported? AWS Ubuntu 22.04 ✅ MAAS Ubuntu 22.04 ✅
Parameters
Parameter | Description |
---|---|
microk8sConfig.addons | A list of MicroK8s addons you can set for your cluster. Ingress and DNS are mandatory and enabled by default. |
microk8sConfig.upgradeStrategy | It describes how to replace existing nodes of your cluster with new ones during upgrades. Values can be RollingUpgrade (default), InPlaceUpgrade , or SmartUpgrade . Refer to the Usage section for guidance. |
microk8sConfig.bootCommands | A list of commands you can set to be executed during boot. |
microk8sConfig.preRunCommands | A list of commands you can set to be executed before installing MicroK8s in your cluster. |
microk8sConfig.postRunCommands | A list of commands you can set to be executed after installing MicroK8s in your cluster. |
Usage
To use MicroK8s, select it as the Kubernetes distribution when choosing the Kubernetes layer during the cluster profile creation. Remember that the cloud type must be either AWS or MAAS, and the OS layer must be Ubuntu 22.04.
MicroK8s clusters use the Calico CNI by default. However, this default installation was disabled due to Palette's requirement for a CNI layer to be present in the cluster profiles. This way, users can choose their preferred CNI layer during the cluster profile creation.
Upgrade Strategy
The upgrade strategy describes how to replace existing control plane nodes with new ones during upgrades.
You can specify the upgrade strategy during cluster profile creation by editing the value of the upgradeStrategy
parameter in the MicroK8s pack YAML file displayed under the Pack Details section.
Before upgrading your cluster, review the Known Issues and the Kubernetes Upgrades pages to learn about the limitations associated with MicroK8s upgrades.
The MicroK8s pack supports three types of upgrade strategies:
-
InPlaceUpgrade
- Performs an in-place upgrade of the control plane. For clusters with one control plane and one worker node,InPlaceUpgrade
temporarily shuts down the API server. -
RollingUpgrade
- The default upgrade strategy that deletes the current control plane node before creating a new one. -
SmartUpgrade
- Performs an in-place upgrade of the control plane on clusters with fewer than three control plane nodes, and a rolling upgrade on clusters with three or more control plane nodes.
Prerequisites
-
A minimum of 20 GB of disk space and 4 GB of memory.
-
Operating System (OS) pack layer and infrastructure provider dependencies as listed in the table below.
Infrastructure Platform OS Version Supported? AWS Ubuntu 22.04 ✅ MAAS Ubuntu 22.04 ✅
Parameters
Parameter | Description |
---|---|
microk8sConfig.addons | A list of MicroK8s addons you can set for your cluster. Ingress and DNS are mandatory and enabled by default. |
microk8sConfig.upgradeStrategy | It describes how to replace existing nodes of your cluster with new ones during upgrades. Values can be RollingUpgrade (default), InPlaceUpgrade , or SmartUpgrade . Refer to the Usage section for guidance. |
microk8sConfig.bootCommands | A list of commands you can set to be executed during boot. |
microk8sConfig.preRunCommands | A list of commands you can set to be executed before installing MicroK8s in your cluster. |
microk8sConfig.postRunCommands | A list of commands you can set to be executed after installing MicroK8s in your cluster. |
Even though the microk8sConfig.bootCommands
, microk8sConfig.preRunCommands
, and microk8sConfig.postRunCommands
parameters are not visible in the YAML file displayed for the MicroK8s pack during cluster profile creation, you can
manually add them to the pack settings according to the example below.
microk8sConfig:
addons:
- dns
- ingress
upgradeStrategy: RollingUpgrade
bootCommands:
- 'echo "===> bootCommands1" > /home/ubuntu/myfile1.txt'
preRunCommands:
- 'echo "===> preRunCommands1" > /home/ubuntu/myfile3.txt'
postRunCommands:
- 'echo "List of postRun commands to be executed"'
Usage
To use MicroK8s, select it as the Kubernetes distribution when choosing the Kubernetes layer during the cluster profile creation. Remember that the cloud type must be either AWS or MAAS, and the OS layer must be Ubuntu 22.04.
MicroK8s clusters use the Calico CNI by default. However, this default installation was disabled due to Palette's requirement for a CNI layer to be present in the cluster profiles. This way, users can choose their preferred CNI layer during the cluster profile creation.
Upgrade Strategy
The upgrade strategy describes how to replace existing control plane nodes with new ones during upgrades.
You can specify the upgrade strategy during cluster profile creation by editing the value of the upgradeStrategy
parameter in the MicroK8s pack YAML file displayed under the Pack Details section.
Before upgrading your cluster, review the Known Issues and the Kubernetes Upgrades pages to learn about the limitations associated with MicroK8s upgrades.
The MicroK8s pack supports three types of upgrade strategies:
-
InPlaceUpgrade
- Performs an in-place upgrade of the control plane. For clusters with one control plane and one worker node,InPlaceUpgrade
temporarily shuts down the API server. -
RollingUpgrade
- The default upgrade strategy that deletes the current control plane node before creating a new one. -
SmartUpgrade
- Performs an in-place upgrade of the control plane on clusters with fewer than three control plane nodes, and a rolling upgrade on clusters with three or more control plane nodes.
All versions less than version 1.26.x are considered deprecated. Upgrade to a newer version to take advantage of new features.
Terraform
You can reference the MicroK8s pack in Terraform with the following data resource.
data "spectrocloud_registry" "public_registry" {
name = "Public Repo"
}
data "spectrocloud_pack" "k8s" {
name = "kubernetes-microk8s"
version = "1.27"
registry_uid = data.spectrocloud_registry.public_registry.id
}