Skip to content
This repository has been archived by the owner on Sep 24, 2021. It is now read-only.

Integrate Unikernels runtime by using frakti #99

Closed
resouer opened this issue Mar 21, 2017 · 8 comments
Closed

Integrate Unikernels runtime by using frakti #99

resouer opened this issue Mar 21, 2017 · 8 comments
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@resouer
Copy link
Contributor

resouer commented Mar 21, 2017

This is a issue for Google Summer of Code 2017, view docs here.

Frakti is a well-designed CRI implementation for hypervisor-based runtimes, it would be not so hard to have Unikernels runtime into its picture.

A build-in unikshim(or any other name) for frakti need to be developed to manage Unikernels workloads.

Implementation Tips:

  1. The workflow will be like:
kubelet -> frakti -> hypervisor manager (libvirt or QEMU) -> Unikernels machines
  1. frakti has already implemented Kubernetes resource model, CNI network, native volumes, so most of upper-layer concepts from Kubernetes can be easily fit to Unikernels container.

Goals

  1. A PoC that can manage Unikernels workload lifecycle with Kubernetes.
  2. All pod level validation tests should be passed by using cri-tools
  3. Only one-pod-one-container model is required.
  4. Only consider using CNI bridge mode network.

Nice To Have

  1. Implementation of container level API in unikshim.

Non Goals

  1. Supporting all kinds of CNI plugins other than bridge mode
  2. Supporting all kinds of volume plugins other than emptyDir and hostPath.
  3. Any other features not in the scope of CRI implementation (not covered by CRI validation tests in cri-tools)
@Crazykev
Copy link
Contributor

This is an awesome and challenging idea, hope to take this as my project in GSOC 2017 which I've already applied for. I am writing a proposal draft for this, will be glad if frakti maintainer could review for me later.

@resouer
Copy link
Contributor Author

resouer commented Apr 19, 2017

Note that https://github.com/linuxkit/linuxkit seems to be an alternative similar approach to replace implement the idea of Unikernels machines above..

[Not a task in this topic, just a very useful reference that can even been integrated in]

@amirmc
Copy link

amirmc commented May 5, 2017

@resouer LinuxKit doesn't 'replace' unikernels. The philosophy is similar but they're different things.

@resouer
Copy link
Contributor Author

resouer commented May 5, 2017

@amirmc Thanks for reminding, we are aware of that and I just update the comment to avoid misleading.

@Crazykev
Copy link
Contributor

Crazykev commented Jun 23, 2017

This is the unikernel integration proposal I submitted to GSoC, I just added image management section to it. Please leave some comment if you have any suggestion.
https://docs.google.com/document/d/1Vld4j0B-wk1A1827gIc5fzWHJlzQVqcYQnCAKJwe_ZM/edit?usp=sharing

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or @fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 31, 2017
@resouer
Copy link
Contributor Author

resouer commented Jan 5, 2018

/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Jan 5, 2018
@resouer
Copy link
Contributor Author

resouer commented Mar 17, 2018

close due to containerd+kata work

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

5 participants