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
Note: Before installing add-ons which install extra client tools (e.g. Helm), be sure that the current user is part of the microk8s
group, to avoid potential permission problems.
Current MicroK8s Addons
ambassador: (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”
configuration.
juju: Enables a juju client to work with MicroK8s.
kata: (1.22+ tracks) Adds Kata containers support - A secure container runtime with lightweight virtual machines that feel and perform like containers.
keda: (1.20+ tracks) Deploys KEDA - Kubernetes Event-driven Autoscaling operator.
knative: Adds the Knative middleware to your cluster (not available on arm64 arch).
kubeflow: Adds Kubeflow using the Charmed Kubeflow operators.
linkerd: Deploys the linkerd service mesh ( arm64 version available in 1.20+).
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: (1.19+ tracks) Add multus for multiple network capability.
openfaas: OpenFaaS, the popular serverless framework, (not available on arm64 arch).
openebs: Add OpenEBS storage capability, (not available on arm64 arch).
portainer: Container management dashboard (see portainer.io).
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. N.B. This is simple filesystem storage local to the node where it was added - you may require something more complex for a cluster.
traefik: (1.20+ tracks) Adds the Traefik Kubernetes Ingress controller.
Last updated 9 days ago. Help improve this document in the forum.