397eabe1fd
Incorporating input from Hyper Contributors. Ready for TOC Review
138 lines
5.3 KiB
Text
138 lines
5.3 KiB
Text
## Project description (what it does, why it is valuable, origin and history)
|
|
`runV` is a hypervisor-based container runtime implementation for [OCI](https://github.com/opencontainers/runtime-spec).
|
|
It uses hypervisors (KVM, Xen, etc.), instead of Cgroup/Namespace to spawn and run containers.
|
|
runV is able to launch a container image (Docker, OCI, etc.) into a micro VM in 100ms,
|
|
and still keeps the hardware-enforced isolation in virtualization. The combination allows container to replace
|
|
traditional VM as the building block for future cloud, which is container-native and application-centric.
|
|
|
|
`hyperstart` is a independent component for `runV` which is used as init service (PID=1) inside the VM sandbox to handle
|
|
commands from outside world. This is the key to hypervisor based container to match the design and behavior of Linux container.
|
|
|
|
'runV` is integrated with [Kubernetes](https://github.com/kubernetes/features/blob/master/release-1.6/release-notes-draft.md#node-components-1 ) as an plug-able secure CRI runtime to launch micro VM as Pod. Also, `runV` can work with `containerd` to start secure container. Besides security and isolation, `runV` also brings greater workload compatibility (kernel module, kernel version, Bring-Your-Own-Kernel) to multi-tenant environment.
|
|
|
|
* statement on alignment with CNCF charter mission
|
|
`runV` tries to enable native hypervisor-based runtime in Kubernetes and CNCF community in cloud native way. This is a important
|
|
supplement to current ecosystem especially considering the coming soon roadmaps including hard multi-tenancy, container security,
|
|
and legacy application adoption. By closely working with CNI, CRI, containerd, Prometheus etc, `runV` is looking forward to fostering
|
|
the growth of CNCF community to a wider area.
|
|
|
|
* sponsor from TOC - Ken Owens
|
|
|
|
* preferred maturity level - Incubator
|
|
|
|
* license - Apache 2
|
|
|
|
* source control - GitHub
|
|
https://github.com/hyperhq/runv
|
|
https://github.com/hyperhq/hyperstart
|
|
|
|
* external dependencies (including licenses)
|
|
`runV` only has very limited external dependencies which are mostly used as utils:
|
|
|
|
```
|
|
github.com/RoaringBitmap/roaring Apache 2.0
|
|
github.com/Sirupsen/logrus MIT
|
|
github.com/cloudfoundry/gosigar Apache 2.0
|
|
github.com/urfave/cli MIT
|
|
github.com/docker/docker/integration-cli/checker Apache 2.0
|
|
github.com/docker/docker/pkg/longpath Apache 2.0
|
|
github.com/docker/docker/pkg/mount Apache 2.0
|
|
github.com/docker/docker/pkg/reexec Apache 2.0
|
|
github.com/docker/docker/pkg/symlink Apache 2.0
|
|
github.com/docker/docker/pkg/system Apache 2.0
|
|
github.com/docker/go-units Apache 2.0
|
|
github.com/go-check/check BSD
|
|
github.com/golang/glog Apache 2.0
|
|
github.com/golang/protobuf BSD
|
|
github.com/golang/snappy Apache 2.0
|
|
github.com/hyperhq/hypercontainer-utils/hlog Apache 2.0
|
|
github.com/kardianos/osext BSD
|
|
github.com/kr/pty MIT
|
|
github.com/mschoch/smat Apache 2.0
|
|
github.com/opencontainers/runc/libcontainer/utils Apache 2.0
|
|
github.com/opencontainers/runtime-spec/specs-go Apache 2.0
|
|
github.com/philhofer/fwd MIT
|
|
github.com/rgbkrk/libvirt-go MIT
|
|
github.com/tinylib/msgp/msgp MIT
|
|
github.com/vdemeester/shakers Apache 2.0
|
|
github.com/vishvananda/netlink Apache 2.0
|
|
github.com/vishvananda/netns Apache 2.0
|
|
github.com/willf/bitset BSD 3
|
|
golang.org/x/net/ BSD 3
|
|
golang.org/x/sys/unix BSD 3
|
|
google.golang.org/grpc BSD 3
|
|
```
|
|
|
|
`hyperstart` is a tiny C implemented program which have no external dependency except Linux kernel.
|
|
|
|
|
|
* initial committers (how long working on project)
|
|
Lai Jiangshan @laijs
|
|
|
|
Gao Feng @gao-feng
|
|
|
|
Wang Xu @gnawux
|
|
|
|
All working on `runV` and `hyperstart` for 1.5+ years, with write permission.
|
|
|
|
|
|
* infrastructure requests (CI / CNCF Cluster): None
|
|
|
|
* communication channels (slack, irc, mailing lists)
|
|
* Mailing list: [hyper-user](https://groups.google.com/forum/#!forum/hyper-user)
|
|
* Slack: https://slack.hyper.sh
|
|
|
|
|
|
* issue tracker - GitHub
|
|
https://github.com/hyperhq/runv/issues
|
|
|
|
https://github.com/hyperhq/hyperstart/issues
|
|
|
|
* website - https://github.com/hyperhq/runv
|
|
|
|
* release methodology and mechanics
|
|
The latest stable release for runV is [0.8.1](https://github.com/hyperhq/runv/releases/tag/v0.8.1), and there have been 8 releases.
|
|
We have a 2~3 months scheduled release period, which depends on the changes in 5 main aspects:
|
|
|
|
1. CRI spec
|
|
2. OCI runtime & image spec
|
|
3. Notable change in Kubernetes `Node` or `containerd`
|
|
4. Notable change in CNI spec
|
|
5. Notable change related to hypervisor related library
|
|
|
|
The release tar file can be downloaded via: https://github.com/hyperhq/runv/releases
|
|
|
|
The latest stable release for hyperstart is [0.8.1](https://github.com/hyperhq/runv/releases/tag/v0.8.1), and there have been 10 releases.
|
|
We also have a 2~3 months scheduled release period, which depends on the changes in 3 main aspects:
|
|
|
|
1. CRI requirement
|
|
2. runV requirement
|
|
3. Notable change related to hypervisor related library
|
|
|
|
* social media accounts
|
|
@hyper_sh
|
|
|
|
* community size and any existing sponsorship
|
|
runV:
|
|
|
|
* 1034 commits
|
|
* 50 forks
|
|
* 22 Contributors
|
|
* 259 Stars
|
|
* 8 releases
|
|
* 300+ slack members
|
|
|
|
hyperstart:
|
|
|
|
* 694 commits
|
|
* 44 forks
|
|
* 23 Contributors
|
|
* 81 Stars
|
|
* 10 releases
|
|
|
|
Huawei contributed engineer time to `runV` and `hyperstart` to integrate them with containerd and Docker.
|
|
|
|
Kontron AG, a German embedded computer manufacture donated a cluster for `runV` maintainers to test `runV` + Kubernetes + OpenStack for NFV workloads.
|
|
|
|
Intel OTC contributed engineer time to improve and use `hyperstart`
|
|
|