-
Notifications
You must be signed in to change notification settings - Fork 118
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #672 from stgraber/main
incus: Add proper introduction
- Loading branch information
Showing
3 changed files
with
111 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Introducing Incus | ||
Date: 7th of August 2023 | ||
|
||
The Linux Containers project is excited to announce its latest addition, Incus! | ||
|
||
Incus isn’t a completely new project however, it’s a fork of LXD created by Aleksa Sarai. | ||
[Aleksa Sarai](https://github.com/cyphar) is most known for his work on runc, umoci and other OpenContainers projects as well as contributions to the Linux kernel. | ||
|
||
But in addition to all that, he’s also been the long time packager of LXD in OpenSUSE. | ||
Aleksa created the fork shortly after Canonical’s decision to take LXD away from Linux Containers with the name Incus being introduced immediately following the LXD 5.16 release. This fork was first intended as a personal project, but has since gathered quite a bit of interest both from the community as well as from former LXD contributors. | ||
|
||
|
||
After some discussion with Aleksa and a fair bit of encouragement from our community, we have made the decision to take Incus under the umbrella of Linux Containers and will commit to it the infrastructure which was previously made available to LXD. | ||
|
||
The goal of Incus is to provide a fully community led alternative to Canonical’s LXD as well as providing an opportunity to correct some mistakes that were made during LXD’s development which couldn’t be corrected without breaking backward compatibility. | ||
|
||
In addition to Aleksa, the initial set of maintainers for Incus will include [Christian Brauner](https://github.com/brauner), [Serge Hallyn](https://github.com/hallyn), [Stéphane Graber](https://github.com/stgraber) and [Tycho Andersen](https://github.com/tych0), effectively including the entire team that once created LXD. | ||
|
||
There is no clearly defined roadmap at this point. Incus will be tracking changes happening in LXD and will likely in time diverge from it as different decisions get made. | ||
A stable release of Incus is likely at least a couple of months away so existing LXD users shouldn’t rush to find a way to migrate quite yet! | ||
|
||
You can find more details or ask us your questions here: | ||
|
||
- Github: [https://github.com/lxc/incus](https://github.com/lxc/incus) | ||
- Forum: [https://discuss.linuxcontainers.org](https://discuss.linuxcontainers.org) | ||
|
||
Sincerely, | ||
|
||
Aleksa Sarai and the Linux Containers team: | ||
|
||
Christian Brauner | ||
Serge Hallyn | ||
Stéphane Graber |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,85 @@ | ||
# Introducing Incus | ||
Date: 7th of August 2023 | ||
[TOC] | ||
|
||
The Linux Containers project is excited to announce its latest addition, Incus! | ||
# What is Incus? | ||
Incus is a next generation system container and virtual machine manager. It offers a unified user experience around full Linux systems running inside containers or virtual machines. | ||
|
||
Incus isn’t a completely new project however, it’s a fork of LXD created by Aleksa Sarai. | ||
[Aleksa Sarai](https://github.com/cyphar) is most known for his work on runc, umoci and other OpenContainers projects as well as contributions to the Linux kernel. | ||
Incus is image based and provides images for a [wide number of Linux distributions](https://images.linuxcontainers.org). It provides flexibility and scalability for various use cases, with support for different storage backends and network types and the option to install on hardware ranging from an individual laptop or cloud instance to a full server rack. | ||
|
||
But in addition to all that, he’s also been the long time packager of LXD in OpenSUSE. | ||
Aleksa created the fork shortly after Canonical’s decision to take LXD away from Linux Containers with the name Incus being introduced immediately following the LXD 5.16 release. This fork was first intended as a personal project, but has since gathered quite a bit of interest both from the community as well as from former LXD contributors. | ||
When using Incus, you can manage your instances (containers and VMs) with a simple command line tool, directly through the REST API or by using third-party tools and integrations. Incus implements a single REST API for both local and remote access. | ||
|
||
The Incus project was created by Aleksa Sarai as a community driven fork of Canonical's Incus. See here for the [announcement](/incus/announcement/). | ||
|
||
After some discussion with Aleksa and a fair bit of encouragement from our community, we have made the decision to take Incus under the umbrella of Linux Containers and will commit to it the infrastructure which was previously made available to LXD. | ||
## Get started | ||
To get a better idea of what Incus is and what it does, you can [try it online](/incus/try-it/)! | ||
|
||
The goal of Incus is to provide a fully community led alternative to Canonical’s LXD as well as providing an opportunity to correct some mistakes that were made during LXD’s development which couldn’t be corrected without breaking backward compatibility. | ||
Then if you want to run it locally, take a look at our [getting started guide](/incus/docs/main/tutorial/first_steps/). | ||
|
||
In addition to Aleksa, the initial set of maintainers for Incus will include [Christian Brauner](https://github.com/brauner), [Serge Hallyn](https://github.com/hallyn), [Stéphane Graber](https://github.com/stgraber) and [Tycho Andersen](https://github.com/tych0), effectively including the entire team that once created LXD. | ||
## Containers and virtual machines | ||
Incus provides support for system containers and virtual machines. | ||
|
||
There is no clearly defined roadmap at this point. Incus will be tracking changes happening in LXD and will likely in time diverge from it as different decisions get made. | ||
A stable release of Incus is likely at least a couple of months away so existing LXD users shouldn’t rush to find a way to migrate quite yet! | ||
When running a system container, Incus simulates a virtual version of a full operating system. To do this, it uses the functionality provided by the kernel running on the host system. | ||
|
||
You can find more details or ask us your questions here: | ||
When running a virtual machine, Incus uses the hardware of the host system, but the kernel is provided by the virtual machine. Therefore, virtual machines can be used to run, for example, a different operating system. | ||
|
||
- Github: [https://github.com/lxc/incus](https://github.com/lxc/incus) | ||
- Forum: [https://discuss.linuxcontainers.org](https://discuss.linuxcontainers.org) | ||
You can learn more about the differences between application containers, system containers and virtual machines in [our documentation](/incus/docs/main/explanation/containers_and_vms/). | ||
|
||
Sincerely, | ||
# Features | ||
Some of the biggest features of Incus are: | ||
|
||
Aleksa Sarai and the Linux Containers team: | ||
Core API | ||
: * [Secure by design](/incus/docs/main/security) (through unprivileged containers, resource restrictions, authentication, ...) | ||
* [Intuitive](/incus/docs/main/rest-api) (with a simple, clear API and crisp command line experience) | ||
* [Scalable](/incus/docs/main/clustering) (from containers on your laptop to clusters of thousands of compute nodes) | ||
* [Event based](/incus/docs/main/events) (providing logging, operation, and lifecycle events) | ||
* [Remote usage](/incus/docs/main/remotes) (same API used for local and network access) | ||
* [Project support](/incus/docs/main/projects) (as a way to compartmentalize sets of images and profiles) | ||
|
||
Christian Brauner | ||
Serge Hallyn | ||
Stéphane Graber | ||
Instances and profiles | ||
: * [Image based](https://images.linuxcontainers.org) (with images for a wide variety of Linux distributions, published daily) | ||
* [Instances](/incus/docs/main/instances) (containers and virtual-machines) | ||
* [Configurable through profiles](/incus/docs/main/profiles) (applicable to both containers and virtual machines) | ||
|
||
Backup and export | ||
: * [Backup and recovery](/incus/docs/main/backup) (for all objects managed by Incus) | ||
* [Snapshots](/incus/docs/main/reference/instance_options/#snapshot-scheduling-and-configuration) (to save and restore the state of an instance) | ||
* [Container and image transfer](/incus/docs/main/image-handling) (between different hosts, using images) | ||
* [Instance migration](/incus/docs/main/migration) (importing existing instances or transferring them between servers) | ||
|
||
Configurability | ||
: * [Multiple storage backends](/incus/docs/main/explanation/storage/) (with configurable storage pools and storage volumes) | ||
* [Network management](/incus/docs/main/explanation/networks/) (including bridge creation and configuration, cross-host tunnels, ...) | ||
* [Advanced resource control](/incus/docs/main/reference/instance_options/#resource-limits) (CPU, memory, network I/O, block I/O, disk usage and kernel resources) | ||
* [Device passthrough](/incus/docs/main/reference/devices/) (USB, GPU, unix character and block devices, NICs, disks and paths) | ||
|
||
|
||
# Availability | ||
Incus works on any recent Linux distribution. | ||
|
||
Incus upstream doesn't directly provide packages, but packages are available in a number of distributions or can be found in 3rd party repositories. | ||
|
||
For Debian and Ubuntu users, we recommend the [packages provided by Zabbly](https://github.com/zabbly/incus). | ||
|
||
In addition, the Incus client is available for Windows and macOS. You can use the client to connect to an Incus server running on a Linux machine. | ||
|
||
More details can be found in our [installation guide](/incus/docs/main/reference/devices/). | ||
|
||
# Support | ||
Incus has two kind of releases: | ||
|
||
* LTS releases | ||
* Feature releases | ||
|
||
At present, no LTS releases have been released. | ||
|
||
Feature releases are pushed out every month or so and contain new features as well as bugfixes. The normal support length for those releases is of about a month, or until the next release comes out. Some Linux distributions might offer longer support for particular feature releases that they decided to ship. | ||
|
||
Commercial support for Incus can be obtained from [Zabbly](https://zabbly.com/incus). | ||
|
||
# Language, licensing and contributions | ||
Incus is written in Go. It is free software and developed under the [Apache 2 license](https://www.apache.org/licenses/LICENSE-2.0). | ||
|
||
The Incus source code is available on [GitHub](https://github.com/lxc/incus). | ||
|
||
There are no CLA or similar legal agreements required to contribute to Incus. However, we require commits be signed-off (following the DCO - Developer Certificate of Ownership). See the [Contribution guidelines](/incus/docs/latest/contributing/) for more information. | ||
|
||
[<img src="/static/img/GitHub_Logo.png" alt="GitHub logo" style="display:block;float:none;margin-left:auto;margin-right:auto;padding:1em 0;max-height:120px"/>](https://github.com/lxc/incus) |