I have a large Ubuntu 12.04/LXC based production environment which I finally can migrate to something more recent and more importantly, supported.
I am leaning heavily towards 16.04, as I feel it is mature and mostly has been through almost all infantile issues, unlike 18.04. Opinions on this are welcome too.
My issue is this. 16.04 comes with LXD 2.0.11. I do not think I specifically need any specific feature from 3.0.x right now. On the other hand, I would like to keep my options open for clustering for example, but not at the expense of stability.
What would you recommend as a good compromise between stability and features at this point in time?
I think that Ubuntu 16.04 is a fine choice for now. Support is until 2016+5=2021.
In Ubuntu 18.04, LXD is currently at version 3.0.1 and soonish it will get 3.0.2. Higher revision numbers are better because more bugs are found and being fixed.
In any case, I suppose you will perform a test migration with lxc-to-lxd to verify that all containers can be converted. If you get any errors, report them so that they get fixed.
After the migration to LXD 2.0.11, you can choose to migrate to LXD 3.0.x.
If you are rebuilding, the go for Ubuntu 18.04.1 with LXD 3.0.2. Currently, 3.0.2 is in the bionic-backports repository and very shortly it will appear as an update in bionic-updates.
3.0.2 fixes some bug fixes over 3.0.1.
In addition, there are some useful features over LXD 2.0.
To be honest I am a little apprehensive going for 18.04 at this time. I think it requires quite the learning curve with things like netplan. Would you say LXD 3.0.x on 16.04 from snap is considered stable?
The snap package has channels with the 2.0.x line, the 3.0.x stable line and the 3.5 (soon 3.6) stable line. All are supported, just the 3.5/3.6 requires to follow the updates every couple of months or so.
If you are more familiar with 16.04, you can go for the snap package with the 3.0.x stable line.
Some users have reported that the snap package, which does auto updates when such updates are available, got issues during such an update. Normally the updates are transparent and do not even restart the containers. I did not get any issues though.
Here is the output of snap info lxd. Shows in a single page the current full story of the snap package lxd.
$ snap info lxd
name: lxd
summary: System container manager and API
publisher: Canonicalā
contact: https://github.com/lxc/lxd/issues
license: unset
description: |
LXD is a container manager for system containers.
It offers a REST API to remotely manage containers over the network, using
an image based workflow and with support for live migration.
Images are available for all Ubuntu releases and architectures as well as
for a wide number of other Linux distributions.
LXD containers are lightweight, secure by default and a great alternative
to virtual machines.
commands:
- lxd.benchmark
- lxd.buginfo
- lxd.check-kernel
- lxd.lxc
- lxd
- lxd.migrate
services:
lxd.activate: oneshot, enabled, inactive
lxd.daemon: simple, enabled, active
snap-id: J60k4JY0HppjwOjW8dZdYc8obXKxujRu
tracking: candidate
refresh-date: 2 days ago, at 11:23 GMT+1
channels:
stable: 3.5 (9010) 69MB -
candidate: 3.6 (9129) 69MB -
beta: ā
edge: git-452e483 (9194) 69MB -
3.0/stable: 3.0.2 (8715) 65MB -
3.0/candidate: 3.0.2 (9043) 68MB -
3.0/beta: ā
3.0/edge: git-4be2099 (9199) 68MB -
2.0/stable: 2.0.11 (8023) 28MB -
2.0/candidate: 2.0.11 (8023) 28MB -
2.0/beta: ā
2.0/edge: git-f3e2b11 (9148) 26MB -
installed: 3.6 (9129) 69MB -
Notice the channels. There is a stable channel with LXD 3.5, and a candidate channel with LXD 3.6.
Also, there is 3.0/stable with LXD 3.0.2 (as in Ubuntu 18.04) and 2.0/stable with LXD 2.0.11 (as in Ubuntu 16.04).
The last line says what you have installed, and I have installed LXD 3.6 (currently from candidate) because I am hardcore.
If you have Ubuntu 16.04, you get by default LXD 2.0.x (currently LXD 2.0.11). However, you can also enable the xenial-backports repository which will give you access to LXD 3.0.x (currently LXD 3.0.1) from Ubuntu 18.04. Ideally, I would suggest to wait a tiny bit more until LXD 3.0.2 is released and use that version. LXD 3.0.2 is currently in bionic-proposed and should soon make it to both bionic-updates and xenial-backports.
When enabling a backports repository, you would need to study carefully https://help.ubuntu.com/community/UbuntuBackports The reason being that you would only want to grab LXD (and dependencies) from backports but probably not anything else. If you are still unsure after your read the UbuntuBackports page, ask here for more.