Blog

HPC

MicroK8s - Start Developing Kubernetes Applications Quickly and Easily

February 4, 2020
4 min read
freight-container-3396664_1920.jpg

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 an 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.

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 any time 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 takes care 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 system monitoring and alerting toolkit originally built at SoundCloud.
  • rbac:Role-based access control (RBAC) is a method of regulating access to a 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 that allocates storage from a host directory.
  • metallb: MetalLB is a load-balancer implementation for bare metal Kubernetes clusters, using standard routing protocols.

What's 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

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 of 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.

Related Blogs

Free Resources

Browse our whitepapers, e-books, case studies, and reference architecture.

Explore
freight-container-3396664_1920.jpg
HPC

MicroK8s - Start Developing Kubernetes Applications Quickly and Easily

February 4, 2020 4 min read

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 an 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.

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 any time 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 takes care 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 system monitoring and alerting toolkit originally built at SoundCloud.
  • rbac:Role-based access control (RBAC) is a method of regulating access to a 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 that allocates storage from a host directory.
  • metallb: MetalLB is a load-balancer implementation for bare metal Kubernetes clusters, using standard routing protocols.

What's 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

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 of 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.

Related Blogs

Free Resources

Browse our whitepapers, e-books, case studies, and reference architecture.

Explore