All Projects → firecracker-microvm → Firecracker Containerd

firecracker-microvm / Firecracker Containerd

Licence: apache-2.0
firecracker-containerd enables containerd to manage containers as Firecracker microVMs

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Firecracker Containerd

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 (-6.81%)
Mutual labels:  containers, virtualization, oci
Runtime
OCI (Open Containers Initiative) compatible runtime using Virtual Machines
Stars: ✭ 588 (-47.96%)
Mutual labels:  containers, virtualization, oci
Cc Oci Runtime
OCI (Open Containers Initiative) compatible runtime for Intel® Architecture
Stars: ✭ 418 (-63.01%)
Mutual labels:  containers, virtualization, oci
Runtime
Kata Containers version 1.x runtime (for version 2.x see https://github.com/kata-containers/kata-containers).
Stars: ✭ 2,103 (+86.11%)
Mutual labels:  containers, virtualization, oci
Distribution
The toolkit to pack, ship, store, and deliver container content
Stars: ✭ 6,445 (+470.35%)
Mutual labels:  containers, oci
Control
Control manages the lifecycle of clusters on your infrastructure and allows deployment of applications via HELM. Its deployment and configuration workflows will help you to get up and running with Kubernetes faster.
Stars: ✭ 680 (-39.82%)
Mutual labels:  aws, containers
Caprover
Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids
Stars: ✭ 7,964 (+604.78%)
Mutual labels:  aws, containers
Karch
A Terraform module to create and maintain Kubernetes clusters on AWS easily, relying entirely on kops
Stars: ✭ 38 (-96.64%)
Mutual labels:  aws, containers
Addon Lxdone
Allows OpenNebula to manage Linux Containers via LXD
Stars: ✭ 36 (-96.81%)
Mutual labels:  containers, virtualization
Amazon Vpc Cni Plugins
VPC CNI plugins for Amazon ECS and EKS.
Stars: ✭ 39 (-96.55%)
Mutual labels:  aws, containers
Runc
CLI tool for spawning and running containers according to the OCI specification
Stars: ✭ 8,729 (+672.48%)
Mutual labels:  containers, oci
Devops Exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
Stars: ✭ 20,905 (+1750%)
Mutual labels:  aws, containers
Geodesic
🚀 Geodesic is a DevOps Linux Distro. We use it as a cloud automation shell. It's the fastest way to get up and running with a rock solid Open Source toolchain. ★ this repo! https://slack.cloudposse.com/
Stars: ✭ 629 (-44.34%)
Mutual labels:  aws, containers
Vic
vSphere Integrated Containers Engine is a container runtime for vSphere.
Stars: ✭ 607 (-46.28%)
Mutual labels:  containers, virtualization
Runv
Hypervisor-based Runtime for OCI
Stars: ✭ 798 (-29.38%)
Mutual labels:  containers, oci
Tectonic Installer
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 599 (-46.99%)
Mutual labels:  containers, oci
Crun
A fast and lightweight fully featured OCI runtime and C library for running containers
Stars: ✭ 990 (-12.39%)
Mutual labels:  containers, oci
Containerd
An open and reliable container runtime
Stars: ✭ 9,956 (+781.06%)
Mutual labels:  containers, oci
Pouch
An Efficient Enterprise-class Container Engine
Stars: ✭ 4,483 (+296.73%)
Mutual labels:  containers, oci
Ecs Deploy
Powerful CLI tool to simplify Amazon ECS deployments, rollbacks & scaling
Stars: ✭ 541 (-52.12%)
Mutual labels:  aws, containers

firecracker-containerd

Automation Status
Tests Build status
Lint Build Status

This repository enables the use of a container runtime, containerd, to manage Firecracker microVMs. Like traditional containers, Firecracker microVMs offer fast start-up and shut-down and minimal overhead. Unlike traditional containers, however, they can provide an additional layer of isolation via the KVM hypervisor.

Potential use cases of Firecracker-based containers include:

  • Sandbox a partially or fully untrusted third party container in its own microVM. This would reduce the likelihood of leaking secrets via the third party container, for example.
  • Bin-pack disparate container workloads on the same host, while maintaining a high level of isolation between containers. Because the overhead of Firecracker is low, the achievable container density per host should be comparable to running containers using kernel-based container runtimes, without the isolation compromise of such solutions. Multi-tentant hosts would particularly benefit from this use case.

To maintain compatibility with the container ecosystem, where possible, we use container standards such as the OCI image format.

There are several components in this repository that enable containerd to use Firecracker microVMs to run containers:

  • A control plugin managing the lifecycle of the runtime and implementing our control API to manage the lifecycle of microVMs. The control plugin is compiled in to the containerd binary since building a Go plugin out-of-tree is hard, which requires us to build a specialized containerd binary for firecracker-containerd.
  • A runtime linking containerd (outside the microVM) to the Firecracker virtual machine monitor (VMM). The runtime is implemented as an out-of-process shim runtime communicating over ttrpc.
  • An agent running inside the microVM, which invokes runC via containerd's containerd-shim-runc-v1 to create standard Linux containers inside the microVM.
  • A root file filesystem image builder that constructs a firecracker microVM root filesystem containing runc and the firecracker-containerd agent.

For more detailed information on the components and how they work, see architecture.md.

Roadmap

To support the widest variety of workloads, firecracker-containerd has to work with popular container orchestration frameworks such as Kubernetes and Amazon ECS, so we will work to ensure that the software is conformant or compatible where necessary. The project currently allows you to launch a few containers colocated in the same microVM, and we are exploring how to raise the number of containers. We recently added support for configuring networking at the microVM level with CNI plugins and provide a CNI plugin suitable for chaining called "tc-redirect-tap". Our short term roadmap includes constraining or "jailing" the Firecracker VMM process to improve the host security posture. Our longer-term roadmap includes polishing, packaging, and generally making firecracker-containerd easier to run as well as exploring CRI conformance and compatibility with Kubernetes.

Details of specific roadmap items are tracked in GitHub issues.

Usage

For detailed instructions on building and running firecracker-containerd, see the getting started guide and the quickstart guide.

Questions?

Please use GitHub issues to report problems, discuss roadmap items, or make feature requests.

If you've discovered an issue that may have security implications to users or developers of this software, please do not report it using GitHub issues, but instead follow Firecracker's security reporting guidelines.

Other discussion: For general discussion, please join us in the #containerd channel on the Firecracker Slack.

License

This library is 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].