To be as lightweight as possible, MicroK8s only installs the basics of a usable Kubernetes install:
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
microk8s disable dns
… and you can check the list of available and installed addons at any time by running:
Current MicroK8s Addons
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.
gpu: Enable support for GPU accelerated workloads using the NVIDIA runtime.
helm: Installs the Helm 2 package manager for Kubernetes.
ingress: A simple ingress controller for external access.
istio: Adds the core Istio services.
jaeger: Deploy the Jaeger Operator in the “simplest” configuration.
juju: Enables a juju client to work with MicroK8s.
knative: Adds the Knative middleware to your cluster.
metrics-server: Adds the Kubernetes Metrics Server for API access to service metrics.
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.
metallb: Deploys the MetalLB Loadbalancer. Note that currently this does not work under multipass on macOS, due to filtering that macOS applies to network traffic.