MicroK8s Addons

There are two types of Addons, Core Addons maintained and officially supported by the MicroK8s team at Canonical, and Community Addons.

See also: How to manage Addons, Setting up your own repository

Addons in the Core Repository

name description version compatibility
cert-manager Certificate management for Kubernetes clusters 1.25 amd64 arm64 power classic strict
community Enables the community addons repository 1.24 amd64 arm64 power s390 classic strict
dns Deploys CoreDNS. It is recommended that this addon is always enabled. 1.12 amd64 arm64 power s390 classic strict
dashboard The standard Kubernetes Dashboard. 1.12 amd64 arm64 power s390 classic strict
gpu Enable support for GPU accelerated workloads using the NVIDIA runtime. 1.12 amd64 classic
ha-cluster Allows for high availability on clusters with at least three nodes. 1.19 amd64 arm64 power s390 classic strict
helm Installs the Helm 3 package manager for Kubernetes 1.15 amd64 arm64 power s390 classic strict
helm3 Transition addon introducing the Helm 3 package manager 1.18 amd64 arm64 power s390 classic strict
hostpath-storage Create a default storage class which allocates storage from a host directory. Note!: The add-on uses simple filesystem storage local to the node where it was added. Not suitable for a production environment or clusters 1.12 amd64 arm64 power s390 classic strict
host-access Provides a fixed IP for access to the host’s services. 1.19 amd64 arm64 power s390 classic strict
ingress A simple ingress controller for external access. 1.12 amd64 arm64 power s390 classic strict
kube-ovn The feature rich Kube-OVN network fabric. 1.25 amd64 arm64 classic
mayastor Multi-node zero-ops storage option powered by Mayastor 1.24 amd64 arm64 classic
minio Cloud-agnostic S3-compatible object storage. 1.26 amd64 arm64 power s390 classic strict
metallb Deploys the MetalLB Loadbalancer. Note that currently this does not work on macOS, due to network filtering. 1.17 amd64 arm64 power s390 classic strict
metrics-server Adds the Kubernetes Metrics Server for API access to service metrics. 1.12 amd64 arm64 power s390 classic strict
prometheus Deploys the Prometheus Operator. 1.14 amd64 arm64 classic strict
rbac Enable Role Based Access Control for authorisation. Note that this is incompatible with some other add-ons. 1.14 amd64 arm64 power s390 classic strict
rook-ceph Rook turns distributed storage systems into self-managing, self-scaling, self-healing storage services. 1.28 amd64 arm64
registry Deploy a private image registry and expose it on localhost:32000. 1.12 amd64 arm64 power s390 classic strict
storage DEPRECATED - Replaced by the hostpath-storage addon. 1.12 amd64 arm64 power s390 classic strict

Addons in the Community Repository

This collection of third party and community maintained addons can be enabled with:


microk8s enable community

Here is what is currently included:

name description version compatibility
ambassador Ambassador is an API and Ingress controller 1.19 <1.24 amd64 classic strict
argocd Deploys Argo CD, the declarative, GitOps continuous delivery tool for Kubernetes. 1.24 amd64 classic
cilium Deploys Cilium to support Kubernetes network policies using eBPF. 1.15 amd64 classic strict
easyhaproxy Adds EasyHAProxy for automatic ingress. 1.27 amd64 arm64 strict classic
fluentd Deploy the Elasticsearch-Fluentd-Kibana logging and monitoring solution. 1.13 amd64 classic
gopaddle-lite Simple “no-code” platform for Kubernetes developers. 1.26 amd64 arm64 classic
inaccel Simplify FPGA management and application lifecycle with InAccel. 1.24 amd64 classic strict
istio Adds the core Istio services (not available on arm64 arch). 1.12 amd64 classic strict
jaeger Deploy the Jaeger Operator in the “simplest” configuration. 1.13 amd64 arm64 classic strict
kata Adds Kata containers support - A secure container runtime with lightweight virtual machines. 1.22 amd64 classic
keda Deploys KEDA - Kubernetes Event-driven Autoscaling operator. 1.20 amd64 classic strict
knative Adds the Knative middleware to your cluster 1.15 amd64 arm64 power s390 classic strict
kubearmor Provides policy-based security for workloads. See KubeArmor website . 1.28 amd64 arm64 classic
kwasm Add WebAssembly support to your Kubernetes nodes 1.26 amd64 arm64 classic strict
linkerd Deploys the linkerd service mesh 1.19 amd64 arm64 classic
microcks Open source Kubernetes native tool for API Mocking and Testing. Microcks is a Cloud Native Computing Sandbox project. 1.28 amd64 arm64 classic strict
multus Add multus for multiple network capability. 1.19 amd64 arm64 classic
nfs Adds NFS-based storage. 1.25 amd64 classic
ondat A Kubernetes-native persistent storage platform. 1.26 amd64 classic
openebs Add OpenEBS storage capability. 1.21 amd64 arm64 classic strict
openfaas OpenFaaS, the popular serverless framework. 1.21 amd64 classic strict
osm-edge Open Service Mesh Edge (OSM-Edge) fork from Open Service Mesh is a lightweight, extensible, Cloud Native service mesh built for Edge computing. 1.25 amd64 arm64 classic strict
parking Parking for static sites 1.27 amd64 arm64 strict classic
portainer Container management dashboard (see portainer.io). 1.20 amd64 arm64 classic strict
shifu Kubernetes native IoT development framework 1.27 amd64 arm64
sosivio Predictive troubleshooting for Kubernetes 1.26 amd64 classic strict
traefik Adds the Traefik Kubernetes Ingress controller. 1.20 amd64 arm64 classic strict
trivy Open source security scanner for Kubernetes 1.26 amd64 arm64 classic strict
1 Like

Hi, it seems Linkerd and also Knative is now available for arm64…

From 1.20 MicroK8s linkerd addon is now available on arm.

Hi,
what is the recommended way to update an add-on on microk8s?
I upgraded my cluster from 1.20 to 1.21 but e.g. dns still uses coredns 1.6.6 instead of 1.8.0.
I didn’t want to disable/enable the add-on to not miss some settings, so i decided to update the used image with microk8s.kubectl set image --namespace kube-system deployment.apps/coredns coredns=coredns/coredns:1.8.0.
Compared to the other microk9s procedures, this looks quite complicated to me.

I know that the dns add-on is very simple, but this was just an example.

BR

@SukramJ Thanks for pointing this out. I don’t know if there is a better way to upgrade an add -on (@kjackal?), but this is definitely something we should mention in the upgrade docs

Pre-configured addons that ‘just work’ are great, but there are times when we might want to configure an addon. It would be useful if this page mentioned how to do so (by editing an addon manifest perhaps?)

1 Like

The hostpath-storage add-on is not intended to be used in a production environment and is not suitable for clusters.

What to use for production then?

I was in fact asking the same question before learning about StorageClasses, PersistentVolumes, PersistentVolumeClaims and all of that stuff.

Getting started

This not not exactly a guide or anything but simply various resources I found out that might help people out.

  1. I was using a custom cloud provider where I could create something called a Block storage which is a fast SSD that I mount to my controller VM.

  2. Once I had a partition ready, I created an NFS Server from that.

  3. I then took a look at NFS Storage provisioning in Kubernetes.

  4. I also started using Helm which has saved my life more than I can count.

Thanks for those resources - indeed, very useful if you need to better understand storage in K8s.
For MicroK8s clusters, the mayastore add-on is a great solution - docs here

1 Like

@Usersina From version 1.25 there is now an nfs addon too

Neat addition! Although I prefer the helm way so it’s easier if I ever want to move to a managed cluster.

1 Like

I just installed the latest version: MicroK8s v1.26.0 revision 4390

The list of core Add-ons is outdated on this page (https://microk8s.io/docs/addons), observability is missing, also when enabling Prometheus a warning of deprecation is shown and observability is installed instead:

microk8s enable prometheus
Infer repository core for addon prometheus
DEPRECATION WARNING: 'prometheus' is deprecated and will soon be removed. Please use 'observability' instead.

Infer repository core for addon observability
Addon core/observability is already enabled

It would be great if you could add a tutorial section about getting started with the current observability add-on, I found an external resource for this, but it references the deprecated add-on prometheus:

https://www.server-world.info/en/note?os=Ubuntu_22.04&p=microk8s&f=7

1 Like

Hi,
Typo regarding Microcks community addon, can you update it?:
s/microrocks/microcks/
Thank you

1 Like

I updated that, sorry for the misspelling, I guess my fingers went too fast.

1 Like