by Ammar Naqvi

Hello MicroK8s: A simpler Kubernetes

analysis
Oct 23, 20197 mins
Cloud ComputingSoftware Development

Why you should consider running Canonical’s fast, lightweight Kubernetes — and how to get started

Gears in the form of a cloud in a binary field  >  Cloud controls
Credit: Bet Noire / Ivanastar / Getty Images

Kubernetes is rapidly becoming the de facto platform for container-based applications. Kubernetes automates the deployment and scaling of containerized applications and simplifies maintenance tasks such as updates and upgrades. The technology has been an incredible success story since Google open sourced it in 2014.

As a result, developers, system admins, and tech enthusiasts around the world are not only interested in learning Kubernetes, but Kubernetes is increasingly becoming part of their jobs.

However, despite its huge benefits, Kubernetes is a complex container orchestration tool that can easily frustrate and overwhelm beginners. Anyone who has worked with Kubernetes, or has tried to, is all too familiar with the pain of getting a Kubernetes deployment set up and running.

Enter MicroK8s, a powerful, enterprise-grade Kubernetes distribution from Canonical that we believe is the smallest and fastest multi-node Kubernetes. MicroK8s (pronounced “micro-kates”) has a small disk and memory footprint while offering production-grade add-ons out of the box including Istio, Knative, Grafana, Cilium, and many more.

Whether someone is running a production environment or merely interested in exploring Kubernetes, MicroK8s should be a welcome solution.

MicroK8s isn’t the only technology on the market promising to reduce complexity and time-to-deployment of Kubernetes clusters, but others are minimalist and lack critical extensibility and important add-ons.

MicroK8s is delivered as a single snap and installed on any one of the 42 Linux distributions that support snaps. Snaps are app packages for desktop, cloud, and IoT that are easy to install and secure.

With a single-command installation on a laptop or other workstation, MicroK8s setup takes less than a minute. MicroK8s can be used on a virtual machine as a small, inexpensive Kubernetes as part of a CI/CD pipeline, or for developing IoT or edge computing apps and machine learning or AI workloads on Linux boxes.

Let’s take a closer look at how MicroK8s works, its benefits, and major features.

MicroK8s advantages

When you boil it down, five prime qualities define the advantages of using MicroK8s: It’s lightweight, simple, secure, current, and comprehensive. 

MicroK8s is lightweight: Team members want the smallest Kubernetes for laptop and workstation development. MicroK8s provides a lightweight, standalone Kubernetes that is compatible with Azure AKS, Amazon EKS, and Google GKE when you run it on Ubuntu.

MicroK8s is simple: MicroK8s minimizes administration and operations with a single-package install that has no moving parts (works out of the box) and includes all dependencies.

MicroK8s is secure: Updates are always available for all security issues and can be applied immediately or scheduled to suit the enterprise’s maintenance cycle. In addition, MicroK8s runs securely on a workstation with state-of-the-art isolation. This isolation is achieved by packaging all the binaries for Kubernetes, Docker.io, iptables, and CNI in a single snap package.

MicroK8s is current: MicroK8s tracks upstream Kubernetes and releases beta, release candidate, and final bits the same day as the upstream Kubernetes release. You can track the latest Kubernetes or stick to any Kubernetes release version from 1.10 onwards. When a major new Kubernetes version comes out, you can upgrade automatically or with a single command.

MicroK8s is comprehensive: MicroK8s includes a curated collection of manifests for common Kubernetes capabilities and services. MicroK8s comes with a Docker registry that enables users to make containers, push them, and deploy them — all on a laptop.

MicroK8s add-ons

As I mentioned earlier, MicroK8s comes packed with potent add-ons that are simple and straightforward to set up, with just a few commands. Cilium and Helm are two key adds-ons that make MicroK8s easier to manage and more reliable. A new addition, Kubeflow, helps with the deployment of machine learning workflows. 

Cilium. Cilium is open source software that provides and secures the network and API connectivity between application services deployed using Linux container management platforms. Running Cilium in MicroK8s enables powerful pod-to-pod connectivity management and service load balancing between pods. (A pod is a collection of one or more containers that share storage and network resources. Pods contain the definition of how the containers should be run in Kubernetes.)

Helm. Helm is the package manager for Kubernetes. Helm is maintained by the CNCF in collaboration with Microsoft, Google, Bitnami, and the Helm contributor community, It allows even easier management of MicroK8s environments by providing the ability to manage, update, share, and roll back Kubernetes applications.

Kubeflow. Kubeflow is now available as an add-on to MicroK8s for improved artificial intelligence and machine learning capabilities. Developers can set up, develop, test, and scale machine learning workflows to their production needs in mere minutes. Kubeflow and GPU acceleration work out the box with MicroK8s.

The list of other add-ons includes:

CoreDNS: CoreDNS is a DNS server, written in Go and able to be used in a multitude of environments because of its flexibility.

Dashboard: You can deploy a Kubernetes dashboard as well as Grafana and InfluxDB.

Storage: Users can create a default storage class that makes use of the hostpath-provisioner pointing to a directory on the host.

Ingress: Create an ingress controller.

GPU: You can expose GPUs) to MicroK8s by enabling the Nvidia runtime and the Nvidia device-plugin daemonset.

Istio: You can deploy the core Istio services and use the microk8s.istioctl command to manage deployments.

Registry: Deploy a private image registry and expose it on localhost:32000.

Yet more add-ons include Fluentd, Prometheus Grafana, and Metrics for monitoring; Jaeger for deploying the Jaeger Operator v1.8.2 in the simplest configuration; Linkerd for deploying the Linkerd2 service mesh; RBAC for the Role-Based Access Control authorization mode, and Knative for serverless computing.

With these add-ons, MicroK8s keeps getting stronger as a way to run a fully equipped Kubernetes deployment quickly and simply.

MicroK8s for edge computing

Meanwhile, another new capability beyond add-ons is the addition of strict confinement to MicroK8s in Ubuntu 19.10, which enhances edge computing capabilities. Strict confinement ensures complete isolation and a tightly secured production-grade Kubernetes environment, all in a small footprint ideal for edge gateways. As a result, MicroK8s add-ons can now be deployed securely at the edge with a single command.

Get started with MicroK8s

To run MicroK8s, you need a computer with a Linux distribution that supports snaps. If you have a Windows PC or a Mac, you can use Multipass to get MicroK8s running.

To install, use the command line:

sudo snap install microk8s -- classic

In under 60 seconds, the distribution will be up and running.

To check the status of MicroK8s, use this command:

sudo microk8s.status

This should produce a screen that looks like this:

canonical microk8s IDG
canonical microk8s IDG

With the Kubernetes deployment up in less than a minute, add-ons can be brought in with similar, minimal-command ease.

Kubernetes has become a major tech industry buzzword, for good reason. MicroK8s is the answer for developers and others who want to dive into Kubernetes but are put off by the complexities. MicroK8s comes in to reduce the complexity and cost of development and deployment without sacrificing quality.

Ammar Naqvi is a product manager for MicroK8s at Canonical, the company behind Ubuntu.

New Tech Forum provides a venue to explore and discuss emerging enterprise technology in unprecedented depth and breadth. The selection is subjective, based on our pick of the technologies we believe to be important and of greatest interest to InfoWorld readers. InfoWorld does not accept marketing collateral for publication and reserves the right to edit all contributed content. Send all inquiries to newtechforum@infoworld.com.