2020年5月17日日曜日

LXD 4.0を試してみた (備忘録)

Ubuntu 20.04への移行準備として、LXD 4.0をインストールしてみました。
作業に際して https://lxd-ja.readthedocs.io/ja/4.0/ を参照しました。

●インストール
Ubuntu 18.04とLXD 3.0の組み合わせの場合は # apt install lxd からインストールを行うことができましたが、LXD 4.0からはsnapパッケージになっているようです。

# apt install snapd
# reboot
# snap install lxd --channel=4.0/stable
# lxd init


●Proxyデバイス
せっかくなのでLXD 3.15で改良が行われたUNIX Socketを使ってみます。

例えば、ホスト側で起動しているPostgreSQLに対してコンテナ内からアクセスしたい場合は次のようになります。
# lxc config device add mastodon postgresql proxy listen=unix:/run/postgresql/.s.PGSQL.5432 connect=unix:/run/postgresql/.s.PGSQL.5432 uid=123 gid=123 mode=0660 security.uid=456 security.gid=456 bind=guest
※例はコンテナ内のpostgresのuid, gidが123、ホスト側のpostgresのuid, gidが456の場合です。 uid, gidについてはidコマンドで調べることができます。(例:# id postgres)

逆に、コンテナ内で起動しているMastodonに対してホスト側のnginxからアクセスしたい場合は次のようになります。
# lxc config device add mastodon314 web proxy listen=unix:/tmp/web.sock connect=unix:/tmp/web.sock uid=33 gid=33 mode=0600 security.uid=1001 security.gid=1001 bind=host
# lxc config device add mastodon314 streaming proxy listen=unix:/tmp/stream.sock connect=unix:/tmp/stream.sock uid=33 gid=33 mode=0600 security.uid=1001 security.gid=1001 bind=host
※例はコンテナ名がmastodon314、コンテナ内のmastodonユーザのuid, gidが1001、ホスト側のwww-dataのuid, gidが33の場合です。


●定期スナップショット
念のため、定期的にスナップショットを保存してみます。
例えば、毎時30分にスナップショットを保存、一週間分を保持する場合は以下のような設定を行います。
# lxc config set mastodon314 snapshots.expiry "1w"
# lxc config set mastodon314 snapshots.schedule "30 * * * *"
# lxc config set mastodon314 snapshots.schedule.stopped true