Giter Club home page Giter Club logo

kubevirt's Introduction

KubeVirt

Build Status Go Report Card

KubeVirt is a virtual machine management architecture built around Kubernetes.

Getting Started

This document contains some more background below. If you want to get started right away, make sure to continue with our Getting Started Guide.

Technical Overview

Kubernetes allows for extensions to its architecture in the form of 3rd party resources: http://kubernetes.io/docs/user-guide/thirdpartyresources/. KubeVirt represents virtual machines as 3rd party resources and manages changes to libvirt domains based on the state of those resources.

This project provides a Vagrant setup with the requisite components already installed. To boot a vanilla kubernetes environment as base for kubevirt, simply type vagrant up from the root directory of the git tree, which can be found here:

https://github.com/kubevirt/kubevirt

Once the Vagrant provisioning script has completed, run ./cluster/sync.sh to build and deploy KubeVirt specific components to the Vagrant nodes.

Note: KubeVirt is built in go. A properly configured go environment is therefore required. For best results, use this path: $GOPATH/src/kubevirt.io/kubevirt/

Associated resources

  • Kubernetes
  • Libvirt
  • Cockpit

Project Components

  • virt-api: This component provides a HTTP RESTfull entrypoint to manage the virtual machines within the cluster.
  • virt-controller: This component manages the state of each VM within the Kubernetes cluster.
  • virt-handler: This is a daemon that runs on each Kubernetes node. It is responsible for monitoring the state of VMs according to Kubernetes and ensuring the corresponding libvirt domain is booted or halted accordingly.
  • virt-launcher: This component is a place-holder, one per running VM. Its job is to remain running as long as the VM is defined. This simply prevents a crash-loop state.
  • ha-proxy: This daemon proxies connections from 192.168.200.2 to the running master node--making it possible to establish connections in a consistent manner.

Scripts

  • cluster/sync.sh: After deploying a fresh vagrant environment, or after making changes to code in this tree, this script will sync the Pods and DaemonSets in the running KubeVirt environment with the state of this tree.
  • cluster/kubectl.sh: This is a wrapper around Kubernete's kubectl command so that it can be run directly from this checkout without logging into a node.
  • cluster/sync_config.sh: This script will contact the master node and collect its config and kubectl. It is called by sync.sh so does not generally need to be run separately.
  • cluster/quickcheck.sh: This script will run a series of tests to ensure the system is set up correctly.

kubevirt's People

Contributors

fabiand avatar ffromani avatar rmohr avatar stu-gott avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.