MicroK8s documentation - home

MicroK8s is a low-ops, minimal production Kubernetes.

MicroK8s is an open-source system for automating deployment, scaling, and management of containerised applications. It provides the functionality of core Kubernetes components, in a small footprint, scalable from a single node to a high-availability production cluster.

By reducing the resource commitments required in order to run Kubernetes, MicroK8s makes it possible to take Kubernetes into new environments, for example:

  • turning Kubernetes into lightweight development tool
  • making Kubernetes available for use in minimal environments such as GitHub CI
  • adapting Kubernetes for small-appliance IoT applications

Developers use MicroK8s as an inexpensive proving ground for new ideas. In production, ISVs benefit from lower overheads and resource demands and shorter development cycles, enabling them to ship appliances faster than ever.


In this documentation

Tutorials
Get started - a hands-on introduction to MicroK8s for new users
How-to guides
Step-by-step guides covering key operations and common tasks
Explanation
Concepts - discussion and clarification of key topics
Reference
Technical information - specifications, commands, architecture

Project and community

MicroK8s is an open source project that welcomes community contributions, suggestions, fixes and constructive feedback.

Navigation

Navigation
Level Path Navlink
0 / Home
0 Tutorials
1 /getting-started Getting started
1 install-alternatives Alternative install methods
2 install-alternatives#heading–windows Windows10
2 install-alternatives#heading–macos macOS
2 install-alternatives#heading–arm Raspberry PI/ARM
2 install-alternatives#heading–offline Offline installs
1 lxd LXD
1 nvidia-dgx NVIDIA DGX
1 install-proxy Behind a proxy
1 setting-snap-channel Channels and versions
1 upgrading Upgrading
1 addons How to use addons
addons#heading–list Available addons
addon-ambassador ambassador
addon-dashboard dashboard
addon-dns dns
addon-fluentd fluentd
addon-gpu gpu
addon-host-access host-access
addon-inaccel inaccel
addon-ingress ingress
addon-kata kata
addon-keda keda
addon-kubeflow kubeflow
addon-linkerd linkerd
addon-metallb metallb
addon-multus multus
addon-openfaas openfaas
addon-openebs openebs
addon-portainer portainer
addon-traefik traefik
addon-mayastor mayastor
tutorials Tutorials
how-to How to Guides
reference Reference
explanation Explanation
0 How To
1 Install MicroK8s
1 high-availability Get High Availability
1 configuring-services Configure services
1 clustering Create a multi-node cluster
1 upgrade-cluster Upgrade a cluster
1 howto-addons Create, edit and use community addons
1 restore-quorum Recover from a lost quorum on dqlite
1 ingress Use the ingress addon
1 ports#heading–auth Use authentication and authorization
1 external-lma Add an LMA stack
1 external-etcd Use an external etcd cluster
1 oidc-dex Set up OIDC to work with Dex
1 multi-user Set up MicroK8s for more users
1 change-cidr Change the pod CIDR
1 add-a-windows-worker-node-to-microk8s Add Windows workers
1 nfs Use NFS for Persistent Volumes
1 manage-upgrades-with-a-snap-store-proxy Manage upgrades with a Snap Store Proxy
1 velero Backup workloads with Velero
1 dockerhub-limits Manage DockerHub rate limits
1 registry-images Use local images
1 registry-public Use a public registry
1 registry-built-in Use the built-in registry
1 registry-private Use a private registry
1 sideload Side-load images
1 troubleshooting Troubleshooting
0 Explanation
1 high-availability High Availability
1 snap-refreshes Snap package refreshes
0 Reference
1 release-notes Release notes
1 command-reference Command reference
1 services-and-ports Services and ports used
1 working-with-kubectl Working with kubectl
1 get-in-touch Get in touch
1 troubleshooting#heading–report-bug Reporting a bug
1 docs/docs Contributing to docs

Redirects

Mapping table
Path Location
1 Like

Hey guys. Who/which forum can I ask the following question.

Would it be appropriate to use mircoK8s for a production standalone server ?

Cheers,
Nate

Hi @intyig20,

Yes, MicroK8s is perfectly fine for a production server.

You can post questions on this forum and tag them with MicroK8s so we get notified.

Thanks

Hi,

I’m new to microk8s and kubernetes, I started to read the doc yesterday and I may have spotted a problem :
In the fifth step (deploy an app), the command : microk8s kubectl create deployment return an error (Error: required flag(s) “image” not set).
I didn’t understand the error at first, but after going through other docs I came to understand that it’s incomplete, we should have something like this : microk8s kubectl create deployment nginx --image=nginx

Maybe the doc could be updated with a compete deployment command with a demo app or something, as it could be difficult to overcome for absolute beginners.

Thanks

I have seen this statement in the blog as well :

What is MicroK8s?

MicroK8s is a powerful, lightweight, reliable production-ready Kubernetes distribution.

And in the home of microk8s.io:

High availability K8s New

Low-ops, minimal production Kubernetes,
for devs, cloud, clusters, workstations, Edge and IoT.

but it’s not in the headline of this category:

Is there a reason that the official docs keeps a low-profile if it’s in fact considered production ready?

Can we put a note on here about the limitations of storage. The add-on only works with a single node. Not clusters, at least not very well once you get into more complex stuff.

please add a completely working example of how to use microk8s in production
now I run this commands in a new server before begin deploy apps
sudo snap install microk8s --classic
microk8s enable dashboard dns registry ingress metrics-server storage
microk8s kubectl create namespace cert-manager
microk8s kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.1/deploy/static/mandatory.yaml
microk8s kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.1/deploy/static/provider/cloud-generic.yaml
microk8s kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml
microk8s kubectl get pods --namespace cert-manager

Thanks for your use case. We may be doing some work to tidy up ‘default’ add-ons which will be automatically added which will make it easier to manage deploys. Beyond that, MicroK8s remains adaptable to the user’s needs, so there isn’t a set way to create a production deployment, although I take your point that we could add examples.

Hi, I am new to kubernets and Microk8s. I created an VM in ubuntu(18.0) and installed microk8s. I using add-ons called metallb also enabled the metallb add-on. the kubeconfig yaml file is getting created, but the problem the server address is my NAT address, its not allocating the mentioned ip address for the load-balancer. so its not accessible external address. Any help why this is happening. ?.

thank you

when you say

can you add any details - is this Virtual Box, LXD? What is the host OS?

Hi, its the virtual box. and the os is linux. I also face other error. the connection to the server localhost:8080 was refused - did you specify the right host or port?. When I searched on this error its mentioned kubectl file would not have been present . so I tried to run the following command.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
but admin.conf file is not present. Not sure how to get it

In VirtualBox, did you set the Network to Bridged Networking?

If you are running in Linux, it is probably easier to follow the LXD install instructions - will run faster and use fewer resources