Slide 1

Slide 1 text

1 Fire up your VMs with Weave Ignite Lucas Käldström - CNCF Ambassador 29th of August, 2019 - Kubernetes Community Meeting Image credit: @ashleymcnamara

Slide 2

Slide 2 text

2 $ whoami Lucas Käldström, soon-to-be University Student, 19 yo CNCF Ambassador, Certified Kubernetes Administrator and (former) Kubernetes WG/SIG Lead KubeCon Speaker in Berlin, Austin, Copenhagen, Shanghai & Seattle KubeCon Keynote Speaker in Barcelona Kubernetes approver and subproject owner, active in the community for 3+ years. Got kubeadm to GA. Weave Ignite creator Driving luxas labs which currently performs contracting for Weaveworks

Slide 3

Slide 3 text

3 https://www.weave.works/blog/fire-up-your-vms-with-weave-ignite

Slide 4

Slide 4 text

4 Weave Ignite “An open source Virtual Machine (VM) manager with a container UX and built-in GitOps management” - Firecracker MicroVMs & OCI containers to unify containers and VMs. - Works in a GitOps fashion; manages VMs declaratively

Slide 5

Slide 5 text

5 Why? Originates from my Finnish conscription time; where I worked on programming tasks We needed to: a) Use open source (no “normal” VM licenses) b) Run legacy applications with “special requirements” c) Integrate with containers

Slide 6

Slide 6 text

6 How? BUT: Firecracker is HARD to use (for those who happen to not be KVM devs)

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

8 Weave Ignite User Stories “I can boot a VM in less than a second!” “I can run fast & secure VMs alongside containers” “I can declaratively manage a fleet of VMs through Git” “I can boot up a Kubernetes cluster in seconds”

Slide 9

Slide 9 text

9 # Let's run the weaveworks/ignite-ubuntu docker image as a VM # Use 2 vCPUs and 1GB of RAM, enable automatic SSH access and name it my-vm ignite run weaveworks/ignite-ubuntu \ --cpus 2 \ --memory 1GB \ --ssh \ --name my-vm # List running VMs ignite ps # List Docker (OCI) and kernel images imported into Ignite ignite images ignite kernels # Get the boot logs of the VM ignite logs my-vm # SSH into the VM ignite ssh my-vm Demo!

Slide 10

Slide 10 text

10 Ways to use Ignite - Docker-like UX - imperatively, using the CLI - GitOps or Manifest Directory - declaratively, using YAML/JSON files - (Future) Virtual Kubelet - declaratively, using the Kubernetes API

Slide 11

Slide 11 text

11 Design & Architecture Use OCI for: a) content distribution b) monitoring processes c) process isolation Device Mapper & DHCP bridges containers + VMs

Slide 12

Slide 12 text

12 Building VM images (the new way)

Slide 13

Slide 13 text

13 GitOps all the things! a) Store desired state in Git b) Run an app reconciling desired => actual state c) App writes status back to Git d) Can observe diffs between observed and desired state

Slide 14

Slide 14 text

14 => gitops-toolkit Prototype to make any app Git-backed Generic framework built upon k8s.io/apimachinery Common code broken out from Ignite

Slide 15

Slide 15 text

15 Run Kubernetes on top of Ignite VMs - kind (yet TODO) - kubeadm HA sample guide - Footloose (like docker-compose) - Cluster API providers

Slide 16

Slide 16 text

16 Read the Docs

Slide 17

Slide 17 text

Thank you! @luxas on Github @luxas on Kubernetes’ Slack @kubernetesonarm on Twitter [email protected]