404 Not Found
  • Introduction
  • Monitoring related
    • K8s cluster monitoring
    • Monitor Jenkins with G.A.P on K8s cluster
    • Monitoring tools | projects
      • Grafana
      • AlertManager
      • Prometheus
      • Wavefront
  • Logging related
    • BOSH logs
    • How to gather systemd log
    • K8s cluster logging
    • Logging tools | projects
      • vRealize Log Insight
      • Fluentd
      • syslog vs fluentd
  • Having fun with docker
    • Using docker-compose for redmine
    • Customize Fluentd docker image
  • K8S or Apache Mesos
  • K8S Related
    • Main Architecture
      • Master components
        • API Server
        • etcd
        • Controller Manager
        • Kube Scheduler
      • Worker components
        • kubelet
        • kube-proxy
    • K8S Storage
      • Volume Provisioning
      • Understand CSI
      • How to write CSI
      • VMware CNS
      • K8S storage e2e experiment under VMware vSphere
      • Experiment on Persistent Volume Access Mode
      • Design: Storage in Cluster-API architecture
    • K8S Networking
      • Ingress
      • Endpoints
    • K8S Policies
      • Resource Quotas
    • K8S Management Platform
    • K8S Tests Tool
    • K8S Extension
      • CRDs
        • Custom Resources
        • Custom Controllers
        • How to user code-generator
        • K8S Operators
        • Operators Development Tools
          • Kubebuilder
          • Metacontroller
          • Operator SDK
      • Custom API Server
    • K8S Resource CRUD Workflow
    • K8S Garbage Collection
  • K8S CONTROLLER RELATED
    • IsController: true
    • Controller clients
  • PKS RELATED
    • How to Access VMs and Databases related to PKS
    • PKS Basics
    • BOSH Director
    • Backup and Restore on Ent. PKS with Velero
  • CICD RELATED
    • Configure Jenkins to run on K8S
    • Customize Jenkins JNLP slave image
    • Jenkins global shared libs
  • Google Anthos
    • Google Anthos Day from KubeCon 2019 San Diego
    • Migrate for Anthos
    • Config Connector
  • SYSTEM DESIGN RELATED
    • Design Data Intensive Application - Notes
      • RSM
        • Reliability
        • Scalability
      • Data models and Query Languages
      • Storage and Retrieval
    • How Alibaba Ensure K8S Performance At Large Scale
  • Miscellaneous
    • Knative
    • Serverless
    • Service Mesh
    • gRPC
    • Local persistent volumes
    • ownerReferences in K8S
    • File(NAS) vs Block(SAN) vs Object storage
    • KubeVirt
    • Why K8S HA chooses 3 instead of 5..6..7 as the size of masters?
    • goroutine & go channel
    • How to make docker images smaller
Powered by GitBook
On this page

Was this helpful?

  1. Miscellaneous

KubeVirt

PreviousFile(NAS) vs Block(SAN) vs Object storageNextWhy K8S HA chooses 3 instead of 5..6..7 as the size of masters?

Last updated 5 years ago

Was this helpful?

Briefly speaking, KubeVirt is an operator (bunch of controllers with bunch of CRDs) to allow user orchestrate VMs across the K8S cluster along with other containers. In another word, VM workloads and container workloads are running within the same K8S cluster without any gap.

Some good introductions on KubeVirt:

How does it work?

KubeVirt is a Kubernetes add-on consisting of custom resource definitions (CRDs), controllers and an operator leveraging a range of Kubernetes extension mechanisms. KubeVirt provides an API for virtualization with the same concepts as other Kubernetes entities, patterns and tools. Using Kubernetes and KubeVirt allows us to launch containers and virtual machines on the same cluster, same node, using the same networks and same storage infrastructure.

More details could be found from the diagram below:

  • There are typically two containers within Virt-Launcher Pod.

    • Volume Container: Retrieve the docker image which has the embeded VM image and pass over to Compute Container.

    • Compote Container: Where the actual VM provisioning happens.

  • VMs are actually living on the either PVC or Shared Host Directories

  • There are two types of VMs:

    • The VMs running directly on Bare Metal Machine by using KVM

    • The VMs running as nested VM on most of the cloud environment

A good video to check out:

Virt-Launcher uses to manage the VMs (Create, Delete, Start, Stop, etc.)

Libvirt
Re-Imagining Virtualization with Kubernetes and KubeVirt - Part II
Logo
Re-Imagining Virtualization with Kubernetes and KubeVirt
Logo