What is MicroK8s, and Why Should I care?

In a nutshell, MicroK8s is a small, fast, secure, single-node Kubernetes environment that works on Linux. It can be used for prototyping, testing, and development of microservices, or can be placed on a VM as efficient, reliable Kubernetes environment for CI/CD. MicroK8s is also a great k8s environment for edge and IoT appliances. Even developing AI/Deep Learning applications for Kubernetes on a GPU workstation is possible with MicroK8s.

For those not familiar, Kubernetes is an open-source container-orchestration system for automating application deployment, scaling, and management.

MicroK8s Pipeline w GPU

What Can I Do with MicroK8s?

MicroK8s is a lightweight, yet fully capable install of Kubernetes. As a default, MicroK8s only installs the basics of a K8s install including:

  • api-server
  • controller-manager
  • scheduler
  • kubelet
  • cni
  • kube-proxy

So what if you need more Kubernetes features? MicroK8s, has you covered, and features the concept of “Add-ons” – which are extra services which can easily be added to MicroK8s to customize your experience. Add-ons can be enabled and disabled at any time, and most do not require any setup.

To enable the CoreDNS add-on type the command:

microk8s.enable dns

To disable at anytime use the disable command:

microk8s.disable dns

Check the list of available and installed add-ons any time by running:

microk8s.status

Awesome MicroK8s Add-ons

  • dashboard: Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters.
  • dns: CoreDNS is a general-purpose authoritative DNS server that can serve as cluster DNS, complying with the dns specifications.
  • cilium: Cilium brings API-aware network security filtering to Linux container frameworks like Docker and Kubernetes
  • fluentd: Kubernetes provides two logging end-points for applications and cluster logs: Stackdriver Logging for use with Google Cloud Platform and Elasticsearch. Behind the scenes there is a logging agent that take cares of log collection, parsing and distribution: Fluentd.
  • gpu: Enable support for GPU accelerated workloads using the NVIDIA runtime.
  • ingress: An API object that manages external access to the services in a cluster, typically HTTP. Ingress can provide load balancing, SSL termination
  • istio: Istio lets you connect, secure, control, and observe services.
  • jaeger: The Jaeger Operator is an implementation of a Kubernetes Operator.
  • knative: Kubernetes-based platform to deploy and manage modern serverless workloads.
  • linkerd: Linkerd is an ultralight service mesh for Kubernetes. It gives you observability, reliability, and security without requiring any code changes.
  • metrics-server: Adds the Kubernetes Metrics Server for API access to service metrics.
  • prometheus: Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud.
  • rbac:Role-based access control (RBAC) is a method of regulating access to computer or network resources based on the roles of individual users within an enterprise.
  • registry: Deploy a private image registry and expose it using localhost:32000.
  • storage: This creates a default storage class which allocates storage from a host directory.
  • metallb: MetalLB is a load-balancer implementation for bare metal Kubernetes clusters, using standard routing protocols.

Whats the Easiest way to develop K8s Applications with GPU capability?

So now that we’ve determined that MicroK8s as the simplest way to start developing Kubernetes, what if you’re developing the groundbreaking new AI application, that’s taking advantage of the latest in deep learning technology? Well, we already know that MicroK8s has GPGPU passthrough, and at Exxact we’ve developed the perfect system for MicroK8s development with GPU. introducing:

Micro Kubernetes MicroK8s Development Workstation

Kubernetes GPU workstation

 

Resource Consumption Considerations for Local MicroK8s (via Canonical)

Another factor to consider is resource consumption. While a VM appliance gives you greater portability, it does mean you’ll consume more resources to run the VM, primarily because the VM ships a complete operating system, and runs on top of a hypervisor. You’ll consume more disk space when the VM is dormant. You’ll consume more RAM and CPU while it is running. Since Microk8s doesn’t require spinning up a virtual machine you’ll have more resources to run your workloads and other applications.

MicroK8s GPU Workstation | Kubernetes

Related Blogs