MicroK8s Add ons

To be as lightweight as possible, MicroK8s only installs the basics of a usable
Kubernetes install:

  • api-server
  • controller-manager
  • scheduler
  • kubelet
  • cni
  • kube-proxy

While this does deliver a pure Kubernetes experience with the smallest of
resource footprints, there are situations where you may require additional
services. MicroK8s caters for this with the concept of “Addons” - extra
services which can easily be added to MicroK8s. These addons can be enabled
and disabled at any time, and most are pre-configured to ‘just work’ without
any further set up.

For example, to enable the CoreDNS addon:

microk8s enable dns

These add-ons can be disabled at anytime using the disable command:

microk8s disable dns

… and you can check the list of available and installed addons at any time
by running:

microk8s status

Current MicroK8s Addons

ambassador: (latest and 1.19 tracks) Ambassador is an API and Ingress controller.

dashboard: The standard Kubernetes Dashboard.

dns: Deploys CoreDNS. This add-on may be required by others - it is
recommended you always enable it. In restricted environments you may need to
update the upstream DNS servers.

cilium: Deploys Cilium to support Kubernetes network policies using eBPF.

fluentd: Deploy the Elasticsearch-Fluentd-Kibana logging and
monitoring solution.

gpu: Enable support for GPU accelerated workloads using the NVIDIA runtime.

helm: Installs the Helm 2 package manager for Kubernetes.

helm3: Installs the Helm 3 package manager for Kubernetes.

host-access: Provides a fixed IP for access to the host’s services.

ingress: A simple ingress controller for external access.

istio: Adds the core Istio services (not available on arm64 arch).

jaeger: Deploy the Jaeger Operator in the “simplest”

juju: Enables a juju client to work with MicroK8s.

knative: Adds the Knative middleware to your cluster (not available on arm64 arch).

kubeflow: Adds KubeFlow using the kubeflow juju bundle.

linkerd: Deploys the linkerd service mesh (not available on arm64 arch).

metallb: Deploys the MetalLB Loadbalancer. Note that currently this does not work on macOS, due to filtering that macOS applies to network traffic.

metrics-server: Adds the Kubernetes Metrics Server
for API access to service metrics.

multus: Add multus for multiple network capability (Currently only in edge channel).

prometheus: Deploys the Prometheus Operator.

rbac: Enable Role Based Access Control for authorisation. Note that this is
incompatible with some other add-ons.

registry: Deploy a private image registry and expose it on localhost:32000.
The storage add-on will be enabled as part of this add-on. See the registry
documentation for more details.

storage: Create a default storage class which allocates storage from a
host directory.