evilnick | 2022-08-10 15:39:44 UTC | #1
**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](/t/microk8s-tutorials/19416) Get started - a hands-on introduction to MicroK8s for new users | [How-to guides](/t/microk8s-how-to-guides/19442) Step-by-step guides covering key operations and common tasks |
| [Explanation](/t/microk8s-explanation/19446) Concepts - discussion and clarification of key topics | [Reference](/t/microk8s-reference/19447) Technical information - specifications, commands, architecture |
---
## Project and community
MicroK8s is an open source project that welcomes community contributions, suggestions, fixes and constructive feedback.
* [Join the Discourse forum](https://discuss.kubernetes.io/)
* [Contribute to documentation](/t/13681)
* [Give us your feedback](/t/11261)
Navigation
[details=Navigation]
| Level | Path | Navlink |
| -- | -- | -- |
| 0 | / | [Home](/t/11243) |
| 0 | | Tutorials |
| 1 | /getting-started | [Getting started](/t/introduction-to-microk8s/18344) |
| 1 | install-alternatives | [Alternative install methods](/t/alternative-installs-macos-windows-10-multipass/11257) |
| 2 | install-alternatives#heading--windows | [Windows10](/t/alternative-installs-macos-windows-10-multipass/11257#heading--windows) |
| 2 | install-alternatives#heading--macos | [macOS](/t/alternative-installs-macos-windows-10-multipass/11257#heading--macos) |
| 2 | install-alternatives#heading--arm | [Raspberry PI/ARM](/t/alternative-installs-macos-windows-10-multipass/11257#heading--arm) |
| 2 | install-alternatives#heading--offline | [Offline installs](/t/alternative-installs-macos-windows-10-multipass/11257#heading--offline) |
| 1 | lxd | [LXD](/t/microk8s-in-lxd/11520) |
| 1 | nvidia-dgx | [NVIDIA DGX](/t/microk8s-on-nvidia-dgx/18225) |
| 1 | install-proxy | [Behind a proxy](/t/installing-behind-a-proxy/11275) |
| 1 | setting-snap-channel | [Channels and versions](/t/selecting-a-snap-channel/11270) |
| 1 | upgrading | [Upgrading](/t/upgrading-microk8s/15440) |
| 1 | addons | [How to use addons](/t/microk8s-add-ons/11264) |
| | addons#heading--list | [Available addons](/t/microk8s-add-ons/11264#heading--list) |
| | addon-ambassador | [ambassador](/t/addon-ambassador/11806) |
| | addon-dashboard | [dashboard](/t/addon-dashboard/11289) |
| | addon-dns | [dns](/t/addon-dns/11287) |
| | addon-fluentd| [fluentd](/t/addon-fluentd/11262) |
| | addon-gpu| [gpu](/t/add-on-gpu/11286) |
| | addon-host-access| [host-access](/t/addon-host-access/11260) |
| | addon-inaccel| [inaccel](/t/addon-inaccel/17522) |
| | addon-ingress| [ingress](/t/addon-ingress/11259) |
| | addon-kata | [kata](/t/addon-kata/17010) |
| | addon-keda | [keda](/t/addon-keda/14011) |
| | addon-kubeflow | [kubeflow](/t/addon-kubeflow/12089) |
| | addon-linkerd | [linkerd](/t/addon-linkerd/11285) |
| | addon-metallb | [metallb](/t/addon-metallb/11790) |
| | addon-multus | [multus](/t/addon-multus/11664) |
| | addon-openfaas | [openfaas](/t/addon-openfaas/14981) |
| | addon-openebs | [openebs](/t/addon-openebs/15229) |
| | addon-portainer | [portainer](/t/addon-portainer/13714) |
| | addon-traefik | [traefik](/t/addon-traefik-ingress/13742) |
| | addon-mayastor | [mayastor](/t/addon-openebs-mayastor-clustered-storage/19451) |
| | tutorials | [Tutorials](/t/microk8s-tutorials/19416) |
| | how-to | [How to Guides](/t/microk8s-how-to-guides/19442) |
| | reference | [Reference](/t/microk8s-reference/19447) |
| | explanation | [Explanation](/t/microk8s-explanation/19446) |
| 0 | | How To |
| 1 | Install MicroK8s | |
| 1 | high-availability | [Get High Availability](/t/high-availability-ha/11731) |
| 1 | configuring-services | [Configure services](/t/configuring-microk8s-services/11269) |
| 1 | clustering | [Create a multi-node cluster](/t/clustering-with-microk8s/11276) |
| 1 | upgrade-cluster | [Upgrade a cluster](/t/upgrading-a-microk8s-cluster/18239) |
| 1 | howto-addons | [Create, edit and use community addons](https://discuss.kubernetes.io/t/use-edit-or-create-addons/19796) |
| 1 | restore-quorum | [Recover from a lost quorum on dqlite](/t/recover-from-lost-quorum/19160) |
| 1 | ingress | [Use the ingress addon](/t/addon-ingress/11259) |
| 1 | ports#heading--auth | [Use authentication and authorization](/t/services-and-ports/11263#heading--auth) |
| 1 | external-lma | [Add an LMA stack](/t/microk8s-with-an-external-lma/13595) |
| 1 | external-etcd | [Use an external etcd cluster](https://discuss.kubernetes.io/t/using-an-external-etcd-with-microk8s/18351) |
| 1 | oidc-dex | [Set up OIDC to work with Dex](/t/configure-oidc-with-dex-for-a-microk8s-cluster/18339)
| 1 | multi-user | [Set up MicroK8s for more users](/t/multi-user-microk8s/13275) |
| 1 | change-cidr | [Change the pod CIDR](/t/changing-the-pods-cidr-in-a-microk8s-cluster/15247) |
| 1 | add-a-windows-worker-node-to-microk8s | [Add Windows workers](/t/add-a-windows-worker-node-to-microk8s/13782) |
| 1 | nfs | [Use NFS for Persistent Volumes](/t/use-nfs-for-persistent-volumes/19035)
| 1 | manage-upgrades-with-a-snap-store-proxy | [Manage upgrades with a Snap Store Proxy](/t/how-to-control-microk8s-upgrades-using-a-snap-store-proxy/18221) |
| 1 | velero | [Backup workloads with Velero](/t/use-velero-for-backups/19034) |
| 1 | dockerhub-limits | [ Manage DockerHub rate limits](/t/dockerhub-download-rate-limits/18729) |
| 1 | registry-images | [Use local images](/t/registry-images/11272) |
| 1 | registry-public | [Use a public registry](/t/working-with-a-public-registry/11271) |
| 1 | registry-built-in | [Use the built-in registry](/t/built-in-registry/11274) |
| 1 | registry-private | [Use a private registry](/t/working-with-a-private-registry/11273) |
| 1 | sideload | [Side-load images](/t/image-side-loading/20437)
| 1 | troubleshooting | [Troubleshooting](/t/troubleshooting/11267) |
| 0 | | Explanation |
| 1 | high-availability | [High Availability](/t/high-availability-ha/11731) |
| 1 | snap-refreshes | [Snap package refreshes](/t/snap-refreshes/18791) |
| 0 | | Reference |
| 1 | release-notes | [Release notes](/t/release-notes/11266) |
| 1 | command-reference | [Command reference](/t/command-reference/11268) |
| 1 | services-and-ports | [Services and ports used](/t/services-and-ports/11263) |
| 1 | working-with-kubectl | [Working with kubectl](/t/working-with-kubectl/11258) |
| 1 | get-in-touch | [Get in touch](/t/get-in-touch/11261) |
| 1 | troubleshooting#heading--report-bug | [Reporting a bug](/t/troubleshooting/11267#heading--report-bug) |
| 1 | docs/docs | [Contributing to docs](/t/creating-and-editing-microk8s-documentation/13681) |
[/details]
Redirects
[details=Mapping table]
| Path | Location |
| -- | -- |
[/details]
-------------------------
intyig20 | 2020-09-08 20:05:14 UTC | #3
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
-------------------------
kjackal | 2020-09-09 09:44:44 UTC | #4
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
-------------------------
citadev | 2020-10-21 13:07:49 UTC | #5
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
-------------------------
Alessandro_Dentella | 2021-02-14 18:21:15 UTC | #6
[quote="kjackal, post:4, topic:11243"]
Yes, MicroK8s is perfectly fine for a production server.
[/quote]
I have seen this statement in the [blog as well](https://ubuntu.com/blog/introduction-to-microk8s-part-1-2) :
> ## **What is MicroK8s?**
>
> MicroK8s is a powerful, lightweight, reliable production-ready Kubernetes distribution.
And in the [home](https://microk8s.io/) 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:
[quote="evilnick, post:1, topic:11243"]
MicroK8s is great for offline development, prototyping, and testing.
[/quote]
Is there a reason that the [official docs](https://microk8s.io/docs) keeps a low-profile if it's in fact considered production ready?
-------------------------
kramik1 | 2021-03-11 19:31:21 UTC | #8
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.
-------------------------
EndyKaufman | 2021-04-27 18:54:19 UTC | #9
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
-------------------------
evilnick | 2021-04-29 09:19:42 UTC | #10
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.
-------------------------
jeyashree | 2021-07-24 09:01:52 UTC | #11
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
-------------------------
evilnick | 2021-07-26 09:36:25 UTC | #12
when you say
[quote="jeyashree, post:11, topic:11243"]
I created an VM in ubuntu(18.0)
[/quote]
can you add any details - is this Virtual Box, LXD? What is the host OS?
-------------------------
jeyashree | 2021-07-26 10:10:30 UTC | #13
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
-------------------------
evilnick | 2021-07-26 14:53:20 UTC | #14
In VirtualBox, did you set the Network to [Bridged Networking](https://www.virtualbox.org/manual/ch06.html)?
If you are running in Linux, it is probably easier to follow the LXD install instructions - will run faster and use fewer resources
-------------------------