All Projects → Mirantis → Virtlet

Mirantis / Virtlet

Licence: apache-2.0
Kubernetes CRI implementation for running VM workloads

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Virtlet

Demo
Easy to use KubeVirt demo based on minikube.
Stars: ✭ 88 (-85.81%)
Mutual labels:  virtualization, libvirt
Virtlyst
Web interface to manage virtual machines with libvirt
Stars: ✭ 167 (-73.06%)
Mutual labels:  virtualization, libvirt
Karesansui
Karesansui is an open-source virtualization management application made in Japan.
Stars: ✭ 97 (-84.35%)
Mutual labels:  virtualization, libvirt
Terraform Provider Libvirt
Terraform provider to provision infrastructure with Linux's KVM using libvirt
Stars: ✭ 894 (+44.19%)
Mutual labels:  virtualization, libvirt
libvirt-ocp4-provisioner
Automate your OCP4 installation
Stars: ✭ 82 (-86.77%)
Mutual labels:  k8s, libvirt
Hiddenvm
HiddenVM — Use any desktop OS without leaving a trace.
Stars: ✭ 1,183 (+90.81%)
Mutual labels:  virtualization, vm
Node Libvirt
libvirt bindings for google v8 javascript engine (nodejs addon)
Stars: ✭ 162 (-73.87%)
Mutual labels:  virtualization, libvirt
Ideas
Ideas for protecting C/C++
Stars: ✭ 37 (-94.03%)
Mutual labels:  virtualization, vm
Runtime
Kata Containers version 1.x runtime (for version 2.x see https://github.com/kata-containers/kata-containers).
Stars: ✭ 2,103 (+239.19%)
Mutual labels:  k8s, virtualization
Kata Containers
Kata Containers version 2.x repository. Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolation and security advantages of VMs. https://katacontainers.io/
Stars: ✭ 1,053 (+69.84%)
Mutual labels:  k8s, virtualization
Appvm
Nix-based app VMs
Stars: ✭ 146 (-76.45%)
Mutual labels:  virtualization, libvirt
fast-vm
'fast-vm' is a script for defining VMs from images provided in thin LVM pool.
Stars: ✭ 22 (-96.45%)
Mutual labels:  vm, libvirt
Kubevirt
Kubernetes Virtualization API and runtime in order to define and manage virtual machines.
Stars: ✭ 2,916 (+370.32%)
Mutual labels:  virtualization, libvirt
virtnbdbackup
Backup utiliy for Libvirt / qemu / kvm supporting incremental and differencial backups.
Stars: ✭ 62 (-90%)
Mutual labels:  virtualization, libvirt
K3sup
bootstrap Kubernetes with k3s over SSH < 1 min 🚀
Stars: ✭ 4,012 (+547.1%)
Mutual labels:  k8s, vm
Ops
ops - build and run nanos unikernels
Stars: ✭ 552 (-10.97%)
Mutual labels:  virtualization
Heim
Cross-platform async library for system information fetching 🦀
Stars: ✭ 572 (-7.74%)
Mutual labels:  virtualization
Dnc
dnc 去中心化 开源社区 轻联盟 dncto.com QQ群 779699538
Stars: ✭ 551 (-11.13%)
Mutual labels:  k8s
Vagrant
Vagrant is a tool for building and distributing development environments.
Stars: ✭ 23,108 (+3627.1%)
Mutual labels:  virtualization
Runtime
OCI (Open Containers Initiative) compatible runtime using Virtual Machines
Stars: ✭ 588 (-5.16%)
Mutual labels:  virtualization

virtlet CircleCI Maintainability Go Report Card

Virtlet is a Kubernetes runtime server which allows you to run VM workloads, based on QCOW2 images.

It is possible to run Virtlet by following the instructions from either Setting up the environment or Deploying Virtlet as a DaemonSet on kubeadm-dind-cluster documents. There's also separate document describing the process of installing Virtlet on real clusters.

See here for the description of Virtlet architecture.

Description & Documentation

See here for user-facing Virtlet description and documentation.

Community

You can join #virtlet channel on Kubernetes Slack (register at slack.k8s.io if you're not in k8s group already). Both the users and developers are welcome!

Getting started with Virtlet

To try out Virtlet follow the instructions from Setting up the environment and try out examples documents.

Virtlet introduction video

You can watch and listen to Virtlet demo video that was recorded on Kubernetes Community Meeting here.

Command line interface

Virtlet comes with a helper tool, virtletctl, that helps managing the VM pods. The binaries are available for Linux and Mac OS X in the Releases section. You can also install virtletctl as a kubectl plugin:

virtletctl install

After that you can use kubectl plugin virt instead of virtletctl (plugin subcommand will not be necessary when kubectl plugins become stable):

kubectl plugin virt ssh [email protected] -- -i examples/vmkey

Virtlet usage demo

You can watch sample usage session under this link.

You can also give Virtlet a quick try using our demo script (requires Docker 1.12+):

wget https://raw.githubusercontent.com/Mirantis/virtlet/master/deploy/demo.sh
chmod +x demo.sh
# './demo.sh --help' displays the description
./demo.sh

The demo will start a test cluster, deploy Virtlet on it and then boot a CirrOS VM there. You may access sample nginx server via curl http://nginx.default.svc.cluster.local from inside the VM. To disconnect from VM, press Ctrl-D. After the VM has booted, you can also use virtletctl tool to connect to its SSH server:

virtletctl ssh [email protected] -- -i examples/vmkey [command...]

By default, CNI bridge plugin is used for cluster networking. It's also possible to override this with calico, flannel or weave plugin, e.g.:

CNI_PLUGIN=flannel ./demo.sh

There's also an option to deploy Virtlet on master node of the DIND cluster, which can be handy e.g. if you don't want to use worker nodes (i.e. start the cluster with NUM_NODES=0):

VIRTLET_ON_MASTER=1 ./demo.sh

The demo script will check for KVM support on the host and will make Virtlet use KVM if it's available on Docker host. If KVM is not available, plain QEMU will be used.

The demo is based on kubeadm-dind-cluster project. Docker btrfs storage driver is currently unsupported. Please refer to kubeadm-dind-cluster documentation for more info.

You can remove the test cluster with ./dind-cluster-v1.14.sh clean when you no longer need it.

External projects using Virtlet

There are some external projects using Virtlet already. One interesting usecase is that of MIKELANGELO project that runs OSv unikernels on Kubernetes using Virtlet. Unikernels are special case of VMs that are extremely small in size (20MB or so) and can only run a single process each. Nevertheless, Virtlet has no problems handling them on Kubernetes as demonstrated in this video. Microservice Demo is available here.

Need any help with Virtlet?

If you will encounter any issue when using Virtlet please look into our issue tracker on github. If your case is not mentioned there - please fill new issue for it. In case of any questions you may also use #virtlet channel on Kubernetes Slack.

Contributing

Virtlet is an open source project and any contributions are welcomed. Look into Contributing guidelines document for our guidelines and further instructions on how to set up Virtlet development environment.

Licensing

Unless specifically noted, all parts of this project are licensed under the Apache 2.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].