1) It's strongly connected to Canonical and Ubuntu. This is mostly a matter of perception and it is an actual community project. However, I can understand people not feeling comfortable with "snap install lxd".
2) It sits somewhere in between k8s and docker engine. Over time, it will probably get more k8s-like features but still it is a weird position to be in.
3) It lacks a reach ecosystem of tools supporting it and a web UI. This makes it hard for newcomers to adopt. We're working on a web UI ourselves as part of our open source cloud management platform (https://github.com/mistio/mist-ce) and love to hear your thoughts.
For example, when LXD was still available as a .deb from upstream, it was possible to run LXD inside a container and do nesting, but with the snap, that isn't possible anymore. (However it is now with the --vm flag, though that's really a different mechanism.)
As I understand it the big remaining difficulty is dqlite.
I got a ping from a Debian dev telling me the Debian dev working on LXD enjoyed the article, and has been trying to pick up on the work again. The linked wiki page is the outdated one.
Debian separates out all of these into own packages.
Last time I tried it on Fedora it did not work (less than 6 months ago).
Also it offers nothing I want over podman with --rootfs
Not to seem like a hypeman for Kubernetes and similar tools, but I actually seem to only ever use containers combined with something like Kubernetes or Docker Swarm. What do you do that you want to do specifically on one machine? Hosting something? Automation à la CI/CD?
Again, I am actually asking for good use cases without orchestration platforms, I am just curious.
I use podman for dev and test environments, CI and CD workers and testing OCI containers that I eventually deploy in K8S. No production use cases. Hoping to soon see K3S working inside podman though, and then I would use it for deploying K3S :)
How do you mean? I've used podman on Void Linux, openSUSE, GitLab CI, and I think some others that I'm forgetting (I distro hop a lot) and it's worked great.
With podman and rootfs it's also normal to run a full systemd inside a container and you don't need special considerations from OCI images for rootfs to work just fine.
> There is probably just fedora supporting this.
RHEL is behind podman and I will take RHEL support over Canonical every day.
Podman is also available on most major distros and easy to port to new ones without requiring someone to use some proprietary crapware solution like snappy.
It is a pretty nifty idea but like all things made by Canonical it is basically digitized garbage.
I tried to get LXC running on fedora some months, wondering why there are no official packages and then I very quickly noticed why. LXD uses the old Ubuntu trick of calling sysv style init scripts from systemd unit files without so much as a "|| exit 1" [1][2] - and I don't have time for that bullshit.
If you want vastly superior quality try podman with --rootfs or virt-install. At least those are not made by people with a disdain for error checking.
[1]: https://github.com/lxc/lxc/blob/master/config/init/systemd/l... [2]: https://github.com/lxc/lxc/blob/master/config/init/common/lx...
> At least those are not made by people with a disdain for error checking.
Every single time there's a topic about Ubuntu or Canonical you seem to go straight into offensive mode. I can tell you use Fedora, but that's not typical of Fedora users and developers and no excuse.
I'm an open source developer and believer, but this kind of behavior slowly burns my soul, even more when it seems accepted. I've worked on enough projects in my life that it's absolutely certain that you use my code regularly. It's inside Go, Python, APT, and RPM by the way (hello Jeff Johnson, wherever you are), and in key libraries that you surely depend on as well. And I never heard you complaining about any of that with such anger here.
I'm also Canonical's CTO, and I was one of the key designers and developers that started snaps, and juju, and other key projects from Canonical. I usually hear such blind hate in silence, but sometimes it's just too much. I don't understand why do we do that to ourselves, as a Linux community. Why is it okay to openly offend unknown people that we almost certainly depend upon? What is it that we came here to do, again?
LXC is legacy and is mostly left as-is for existing users who are happy [and don't want the LXD paradigm shift]. Think of it as 1.0. You're complaining about stuff that is effectively a maintenance branch. At least your links point to LXC, not LXD.
LXD is the new thing. Think of it as 2.0 and onwards.
LXD is a complete rewrite. There is now a server daemon called "lxd", and the client for that is "lxc".
Then the only remaining part would be figuring out how to do zfs on root in redhat. I do it with a chroot bash script for Ubuntu server atm, but hopefully there's a debootstrap kind of thing on redhat that I can use as a base.
I’ve been using ZFS root on Ubuntu without any such nonsense for years, but I had to debootstrap it manually.
See guides here: https://openzfs.github.io/openzfs-docs/Getting%20Started/Ubu...
With Ubuntu 20.04 the standard installer should support setting up a ZFS root without all that manual work, but I haven’t tested it myself.
There are ways to do chroot installs on RHEL but sadly not well documented.
Some resources on this:
- https://glacion.com/2019/06/16/Fedora.html
- https://github.com/glacion/fedora-chroot-installation
- https://web.archive.org/web/20150912004438/https://wiki.cent...
Most of that will work for RHEL with some minor modifications.
Pity it is not better documented.
Just set up your disk layout the way you want on a disk device or a loopback disk backed by an image, and do something like:
$ sudo dnf --installroot=/path/to/mounted/target group install @core @hardware-support
And you're good to go. You can see the list of groups available to include by using "dnf group list --ids".
If you opened the first link I shared you would see more is needed than this, which is why I linked to something explaining both this and the additional steps needed.
I use it to run all of the virtual server machines in my home LAN (mostly virtual desktops) with each machine exposed on the real LAN's DHCP server (so I can move them to a different box if needed), and to launch ephemeral "server boxes" to run some tests or builds or whatever on without polluting my dev environment (think virtualenv, but for anything).
I also used it as the base for my virtual system builder scripts ("container" VMs with LXD, "VM" VMs with libvirt since LXD didn't support VMs back then): https://github.com/kstenerud/virtual-builders