UbuCon

26 Sep, 2021

UbuCon.Asia

Ubuntu-MM

Myanmar LoCo Team

  • ubuntu-mm.net
  • flickr.com/groups/ubuntu-mm

Ko Ko Ye

kokoye2007

kokoye2007@gmail.com

kokoye2007@ubuntu.com

fb.me/kokoye2007

twitter.com/kokoye2007

linkedin.com/in/kokoye2007

Kubernetes

https://slides.com/kokoye2007/k8s

K8s

MicroK8s

K3s

K0s

Borg
Omega
Kubernetes

Borg

2003

2003-2004: Birth of the Borg System

  • Google introduced the Borg System around 2003-2004. It started off as a small-scale project, with about 3-4 people initially in collaboration with a new version of Google’s new search engine. Borg was a large-scale internal cluster management system, which ran hundreds of thousands of jobs, from many thousands of different applications, across many clusters, each with up to tens of thousands of machines.

Omega

2013

2013: From Borg to Omega

  • Following Borg, Google introduced the Omega cluster management system, a flexible, scalable scheduler for large compute clusters.

Kubernetes

2014

2014: Google Introduces Kubernetes

Kube 1.0

2015

2015: The year of Kube v1.0 & CNCF

Kubernetes

2016~2021

2016: The Year Kubernetes Goes Mainstream!

2017: The Year of Enterprise Adoption & Support

2018:

- GKE

- AKS

- EKS

- Digital Ocean

K8s

Kubernetes

K8s

  • https://labs.play-with-k8s.com/
  • https://training.play-with-kubernetes.com/

MicroK8s

Power by 

Why MicroK8s

Embedded Kubernetes – try a Raspberry Pi cluster

ARM or Intel. Standalone or cluster. Minimal space, maximum edge.

Under the cell tower. On the racecar. On satellites or everyday appliances, MicroK8s delivers the full Kubernetes experience on IoT and micro clouds.

Fully containerized deployment with compressed over-the-air updates for ultra-reliable operations.

GPU acceleration

Nvidia auto-detection with CUDA at the ready

Pass GPUs to docker apps for deep learning. Define AI pipelines with Kubeflow on your workstation.

We work with Amazon, Azure, Google, Oracle and IBM to simplify multi-cloud GPU enablement. Build and test locally on MicroK8s, then deploy to EKS, AKS or GKE with confidence.

Batteries included

Tracing. Metrics. Service Mesh. Registry.

Prometheus is popular for metrics, so we bundled it. Just like Jaeger, Istio, LinkerD and KNative.

Turn them on or off with one command.

Automatic security updates

Let it roll, or take control

Choose stable security releases only, or try release candidates, betas and daily builds. MicroK8s can update automatically, with rollback on failure.

Stick with a major version, or follow the latest upstream work. Go with the flow, or take control in the enterprise to specify versions with perfect precision.

Safe and easy CI/CD

Docker app developers love pipelines

So your CI/CD machine spins up a clean VM for each test run? Just install MicroK8s at the top of your script for a crisp, clean K8s to run your tests.

MicroK8s

Power by 

MicroK8s

Microk8s

  • Windows
  • MacOS
  • Linux

Microk8s

  • Windows

Download the MicroK8s Installer

https://microk8s.io/microk8s-installer.exe

Microk8s

  • Windows

Run the installer

Microk8s

  • Windows

Open a command line

Microk8s

  • MacOS

Microk8s

  • MacOS
brew install ubuntu/microk8s/microk8s

 

microk8s install

Microk8s

  • MacOS

demo:

https://asciinema.org/a/IWhwnidik9xaC2YHfjBUIsLin

Microk8s

# Check the status while Kubernetes starts

microk8s status --wait-ready


# Turn on the services you want

microk8s enable dashboard dns registry istio

# microk8s enable --help
# microk8s disable --help


# Start using Kubernetes!

microk8s kubectl get all --all-namespaces



# Access the Kubernetes dashboard

microk8s dashboard-proxy


# Start and stop Kubernetes

microk8s start
microk8s stop

Microk8s

Multipass

$ multipass launch --name microk8s-vm  --mem 4G --disk 40G


$ multipass list

# Output 

Name                    State             IPv4             Release
microk8s-vm             RUNNING           10.72.145.216    Ubuntu 18.04 LTS

Multipass

$ multipass shell microk8s-vm


sudo snap install microk8s --classic --channel=1.18/stable

sudo iptables -P FORWARD ACCEPT

Multipass

# Get shell inside VM

multipass shell microk8s-vm


# Shutdown VM 

multipass stop microk8s-vm


# Delete and cleanup the VM:

multipass delete microk8s-vm

multipass purge

Raspberry Pi/ARM

# Edit Parameters

sudo vi /boot/firmware/cmdline.txt



# CG Group, And adding the following:

cgroup_enable=memory cgroup_memory=1

K0s

K0s

k0s is an all-inclusive Kubernetes distribution, configured with all of the features needed to build a Kubernetes cluster simply by copying and running an executable file on each target host.

K0s

Key Features

  • Available as a single static binary
  • Offers a self-hosted, isolated control plane
  • Supports a variety of storage backends, including etcd, SQLite, MySQL (or any compatible), and PostgreSQL.
  • Offers an Elastic control plane
  • Vanilla upstream Kubernetes
  • Supports custom container runtimes (containerd is the default)
  • Supports custom Container Network Interface (CNI) plugins (calico is the default)
  • Supports x86_64 and arm64

K0s Demo

Thanks !

https://slides.com/kokoye2007/k8s/