KubeVirt
Friendly coexistence of Virtual Machines and Containers on Kubernetes
using KubeVirt
DISCLAIMER
This is not a product pitch, this is R&D.
There be dragons!
THE STORY SO FAR...
● I need a place to install, run, and manage Kubernetes clusters.
...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
THE STORY SO FAR...
● I need a place to install, run, and manage Kubernetes clusters.
=> OpenStack, oVirt, VMware, AWS, GCE, Azure, etc.
...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
THE STORY SO FAR...
● I need a place to install, run, and manage Kubernetes clusters.
=> OpenStack, oVirt, VMware, AWS, GCE, Azure, etc.
● I need a way to provide strict isolation of application containers.
...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
THE STORY SO FAR...
● I need a place to install, run, and manage Kubernetes clusters.
=> OpenStack, oVirt, VMware, AWS, GCE, Azure, etc.
● I need a way to provide strict isolation of application containers.
=> Katacontainers, Clear Containers, Hyper RunV, gVisor
...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
WHAT ABOUT EXISTING WORKLOADS?
CONTAINER INFRASTRUCTURE AND ORCHESTRATION
Container Application and Kubernetes orchestration as provided by OpenShift are
becoming the standard for new applications.
WHAT ABOUT EXISTING WORKLOADS?
CONTAINER INFRASTRUCTURE AND ORCHESTRATION
Container Application and Kubernetes orchestration as provided by OpenShift are
becoming the standard for new applications.
VIRTUALIZED WORKLOADS
Virtualized Workloads are not going anywhere fast! Business reasons (cost, time to
market) and technical reasons (older/different operating system)
WHAT ABOUT EXISTING WORKLOADS?
CONTAINER INFRASTRUCTURE AND ORCHESTRATION
Container Application and Kubernetes orchestration as provided by OpenShift are
becoming the standard for new applications.
VIRTUALIZED WORKLOADS
Virtualized Workloads are not going anywhere fast! Business reasons (cost, time to
market) and technical reasons (older/different operating system)
CONVERGING INFRASTRUCTURE
How can we bring these two worlds closer together?
VIRTUAL MACHINE VIRTUAL MACHINE
LINUX HOST
PHYSICAL MACHINE
KVM
{QEMU
Processes
WHAT IS KUBEVIRT?
Technology enabling Kubernetes as a unified platform for building, modifying, and deploying
applications residing in both containers and virtual machines in a common, shared
environment.
Add virtual machines as you know them to your Kubernetes projects!
WHAT IS KUBEVIRT?
● Drops directly into existing Kubernetes Clusters
○ Implemented as a CustomResourceDefinition
● Extends Kubernetes so VMs can be scheduled alongside Containers
● Takes as K8S-native an approach as possible
○ Placement, Quotas, Metrics, Monitoring, etc.
○ Pod networking
○ K8S or Cinder storage
● Use cases?
Operating System
Kubernetes
Physical Machine
VM Pod
Regular
Pod
EXAMPLE USE CASE - START WITH A VM
EXAMPLE USE CASE - BUILD NEW SERVICES
EXAMPLE USE CASE - START DECOMPOSING
CONTAINER
TOGETHER AT LAST
VIRTUAL MACHINE
ENTERPRISE CONTAINER HOST
PHYSICAL MACHINE
CONTAINER
Resultant virtual machines are able to run side by side directly on the same OpenShift nodes
as application containers.
{Pods
● KubeVirt focuses on enabling traditional/existing virtual machine
workloads on Kubernetes.
● Katacontainers focuses on enabling hardware-assisted virtualization for
application container workloads on Kubernetes.
● gVisor another approach to isolation of application container workloads on
Docker/Kubernetes.
DEMO
Pre-requisites:
● kubectl
● minikube
https://github.com/kubevirt/demo
$ minikube start --vm-driver kvm2 
--network-plugin cni 
--kubernetes-version v1.10.0
$ export VERSION=v0.5.1-alpha.1
$ kubectl create -f
https://github.com/kubevirt/kubevirt/releases/download/$VERSION/ku
bevirt.yaml
●
○
●
●
○
●
○
TYPICAL WORKFLOW
kind: VirtualMachine
metadata:
name: testvm
spec:
domain:
devices:
graphics:
- type: spice
consoles:
- type: pty
In case of ERR_DEMO_NO_WORKIE
Typical Pod commands:
● kubectl create -f mypodspec.yaml
● kubectl delete mypod
● kubectl exec mypod -it /bin/bash
Typical VirtualMachine commands:
● kubectl create -f myvmspec.yaml
● kubectl delete testvm
● virtctl start testvm
● virtctl console testvm
● virtctl vnc testvm
INTERESTED IN COLLABORATING?
KubeVirt
● Website:
○ http://www.kubevirt.io/
● GitHub:
○ https://github.com/kubevirt/kubevirt
● Mailing List:
○ https://groups.google.com/forum/#!forum/kubevirt-dev
● IRC:
○ #kubevirt on irc.freenode.net
You can also catch us later this next week at OpenStack Summit Vancouver!
We Want to Hear From You!
Provide your input on your
infrastructure and use cases
Take this survey
https://bit.ly/2HJbUfx
THANK YOU
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHatNews

KubeVirt (Kubernetes and Cloud Native Toronto)

  • 1.
    KubeVirt Friendly coexistence ofVirtual Machines and Containers on Kubernetes using KubeVirt
  • 2.
    DISCLAIMER This is nota product pitch, this is R&D. There be dragons!
  • 3.
    THE STORY SOFAR... ● I need a place to install, run, and manage Kubernetes clusters. ...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
  • 4.
    THE STORY SOFAR... ● I need a place to install, run, and manage Kubernetes clusters. => OpenStack, oVirt, VMware, AWS, GCE, Azure, etc. ...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
  • 5.
    THE STORY SOFAR... ● I need a place to install, run, and manage Kubernetes clusters. => OpenStack, oVirt, VMware, AWS, GCE, Azure, etc. ● I need a way to provide strict isolation of application containers. ...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
  • 6.
    THE STORY SOFAR... ● I need a place to install, run, and manage Kubernetes clusters. => OpenStack, oVirt, VMware, AWS, GCE, Azure, etc. ● I need a way to provide strict isolation of application containers. => Katacontainers, Clear Containers, Hyper RunV, gVisor ...FOR VIRTUALIZATION IN A CONTAINERIZED WORLD
  • 7.
    WHAT ABOUT EXISTINGWORKLOADS? CONTAINER INFRASTRUCTURE AND ORCHESTRATION Container Application and Kubernetes orchestration as provided by OpenShift are becoming the standard for new applications.
  • 8.
    WHAT ABOUT EXISTINGWORKLOADS? CONTAINER INFRASTRUCTURE AND ORCHESTRATION Container Application and Kubernetes orchestration as provided by OpenShift are becoming the standard for new applications. VIRTUALIZED WORKLOADS Virtualized Workloads are not going anywhere fast! Business reasons (cost, time to market) and technical reasons (older/different operating system)
  • 9.
    WHAT ABOUT EXISTINGWORKLOADS? CONTAINER INFRASTRUCTURE AND ORCHESTRATION Container Application and Kubernetes orchestration as provided by OpenShift are becoming the standard for new applications. VIRTUALIZED WORKLOADS Virtualized Workloads are not going anywhere fast! Business reasons (cost, time to market) and technical reasons (older/different operating system) CONVERGING INFRASTRUCTURE How can we bring these two worlds closer together?
  • 10.
    VIRTUAL MACHINE VIRTUALMACHINE LINUX HOST PHYSICAL MACHINE KVM {QEMU Processes
  • 11.
    WHAT IS KUBEVIRT? Technologyenabling Kubernetes as a unified platform for building, modifying, and deploying applications residing in both containers and virtual machines in a common, shared environment. Add virtual machines as you know them to your Kubernetes projects!
  • 12.
    WHAT IS KUBEVIRT? ●Drops directly into existing Kubernetes Clusters ○ Implemented as a CustomResourceDefinition ● Extends Kubernetes so VMs can be scheduled alongside Containers ● Takes as K8S-native an approach as possible ○ Placement, Quotas, Metrics, Monitoring, etc. ○ Pod networking ○ K8S or Cinder storage ● Use cases? Operating System Kubernetes Physical Machine VM Pod Regular Pod
  • 13.
    EXAMPLE USE CASE- START WITH A VM
  • 14.
    EXAMPLE USE CASE- BUILD NEW SERVICES
  • 15.
    EXAMPLE USE CASE- START DECOMPOSING
  • 16.
    CONTAINER TOGETHER AT LAST VIRTUALMACHINE ENTERPRISE CONTAINER HOST PHYSICAL MACHINE CONTAINER Resultant virtual machines are able to run side by side directly on the same OpenShift nodes as application containers. {Pods
  • 17.
    ● KubeVirt focuseson enabling traditional/existing virtual machine workloads on Kubernetes. ● Katacontainers focuses on enabling hardware-assisted virtualization for application container workloads on Kubernetes. ● gVisor another approach to isolation of application container workloads on Docker/Kubernetes.
  • 19.
  • 20.
    $ minikube start--vm-driver kvm2 --network-plugin cni --kubernetes-version v1.10.0 $ export VERSION=v0.5.1-alpha.1 $ kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/$VERSION/ku bevirt.yaml
  • 21.
  • 22.
    TYPICAL WORKFLOW kind: VirtualMachine metadata: name:testvm spec: domain: devices: graphics: - type: spice consoles: - type: pty In case of ERR_DEMO_NO_WORKIE Typical Pod commands: ● kubectl create -f mypodspec.yaml ● kubectl delete mypod ● kubectl exec mypod -it /bin/bash Typical VirtualMachine commands: ● kubectl create -f myvmspec.yaml ● kubectl delete testvm ● virtctl start testvm ● virtctl console testvm ● virtctl vnc testvm
  • 23.
    INTERESTED IN COLLABORATING? KubeVirt ●Website: ○ http://www.kubevirt.io/ ● GitHub: ○ https://github.com/kubevirt/kubevirt ● Mailing List: ○ https://groups.google.com/forum/#!forum/kubevirt-dev ● IRC: ○ #kubevirt on irc.freenode.net You can also catch us later this next week at OpenStack Summit Vancouver!
  • 24.
    We Want toHear From You! Provide your input on your infrastructure and use cases Take this survey https://bit.ly/2HJbUfx
  • 25.