Linux中國

LXD 2.0 系列(二):安裝與配置

這是 LXD 2.0 系列介紹文章的第二篇。

  1. LXD 入門
  2. 安裝與配置
  3. 你的第一個 LXD 容器
  4. 資源控制
  5. 鏡像管理
  6. 遠程主機及容器遷移
  7. LXD 中的 Docker
  8. LXD 中的 LXD
  9. 實時遷移
  10. LXD 和 Juju
  11. LXD 和 OpenStack
  12. 調試,及給 LXD 做貢獻

安裝篇

有很多種辦法可以獲得 LXD。我們推薦你配合最新版的 LXC 和 Linux 內核使用 LXD,這樣就可以享受到它的全部特性。需要注意的是,我們現在也在慢慢的降低對舊版本 Linux 發布版的支持。

Ubuntu 標準版

所有新發布的 LXD 都會在發布幾分鐘後上傳到 Ubuntu 開發版的安裝源里。這個安裝包然後就會作為 Ubuntu 用戶的其他安裝包源的種子。

如果使用 Ubuntu 16.04,可以直接安裝:

sudo apt install lxd

如果運行的是 Ubuntu 14.04,則可以這樣安裝:

sudo apt -t trusty-backports install lxd

Ubuntu Core

使用 Ubuntu Core 穩定版的用戶可以使用下面的命令安裝 LXD:

sudo snappy install lxd.stgraber

Ubuntu 官方 PPA

使用其他 Ubuntu 發布版 —— 比如 Ubuntu 15.10 —— 的用戶可以添加下面的 PPA(Personal Package Archive)來安裝:

sudo apt-add-repository ppa:ubuntu-lxc/stable
sudo apt update
sudo apt dist-upgrade
sudo apt install lxd

Gentoo

Gentoo 已經有了最新的 LXD 包,你可以直接安裝:

sudo emerge --ask lxd

使用源代碼安裝

如果你曾經編譯過 Go 語言的項目,那麼從源代碼編譯 LXD 並不是十分困難。然而注意,你需要 LXC 的開發頭文件。為了運行 LXD, 你的發布版需也要使用比較新的內核(最起碼是 3.13)、比較新的 LXC (1.1.4 或更高版本)、LXCFS 以及支持用戶子 uid/gid 分配的 shadow 文件。

從源代碼編譯 LXD 的最新教程可以在上游 README里找到。

Ubuntu 上的網路配置

Ubuntu 的安裝包會很方便的給你提供一個「lxdbr0」網橋。這個網橋默認是沒有配置過的,只提供通過 HTTP 代理的 IPv6 的本地連接。

要配置這個網橋並添加 IPv4 、 IPv6 子網,你可以運行下面的命令:

sudo dpkg-reconfigure -p medium lxd

或者直接通過 LXD 初始化命令一步一步的配置:

sudo lxd init

存儲後端

LXD 提供了幾種存儲後端。在開始使用 LXD 之前,你應該決定將要使用的後端,因為我們不支持在後端之間遷移已經生成的容器

各個後端特性比較表可以在這裡找到。

ZFS

我們的推薦是 ZFS, 因為它能支持 LXD 的全部特性,同時提供最快和最可靠的容器體驗。它包括了以容器為單位的磁碟配額、即時快照和恢復、優化後的遷移(發送/接收),以及快速從鏡像創建容器的能力。它同時也被認為要比 btrfs 更成熟。

要和 LXD 一起使用 ZFS ,你需要首先在你的系統上安裝 ZFS。

如果你是用的是 Ubuntu 16.04 , 你只需要簡單的使用命令安裝:

sudo apt install zfsutils-linux

在 Ubuntu 15.10 上你可以這樣安裝:

sudo apt install zfsutils-linux zfs-dkms

如果是更舊的版本,你需要從 zfsonlinux PPA 安裝:

sudo apt-add-repository ppa:zfs-native/stable
sudo apt update
sudo apt install ubuntu-zfs

配置 LXD 只需要執行下面的命令:

sudo lxd init

這條命令接下來會向你提問一些 ZFS 的配置細節,然後為你配置好 ZFS。

btrfs

如果 ZFS 不可用,那麼 btrfs 可以提供相同級別的集成,但不能正確地報告容器內的磁碟使用情況(雖然配額仍然可用)。

btrfs 同時擁有很好的嵌套屬性,而這是 ZFS 所不具有的。也就是說如果你計劃在 LXD 中再使用 LXD,那麼 btrfs 就很值得你考慮。

使用 btrfs 的話,LXD 不需要進行任何的配置,你只需要保證 /var/lib/lxd 保存在 btrfs 文件系統中,然後 LXD 就會自動為你使用 btrfs 了。

LVM

如果 ZFS 和 btrfs 都不是你想要的,你還可以考慮使用 LVM 以獲得部分特性。 LXD 會以自動精簡配置的方式使用 LVM,為每個鏡像和容器創建 LV,如果需要的話也會使用 LVM 的快照功能。

要配置 LXD 使用 LVM,需要創建一個 LVM 卷組,然後運行:

lxc config set storage.lvm_vg_name "THE-NAME-OF-YOUR-VG"

默認情況下 LXD 使用 ext4 作為全部邏輯卷的文件系統。如果你喜歡的話可以改成 XFS:

lxc config set storage.lvm_fstype xfs

簡單目錄

如果上面全部方案你都不打算使用,LXD 依然能在不使用任何高級特性情況下工作。它會為每個容器創建一個目錄,然後在創建每個容器時解壓縮鏡像的壓縮包,並在容器拷貝和快照時進行一次完整的文件系統拷貝。

除了磁碟配額以外的特性都是支持的,但是很浪費磁碟空間,並且非常慢。如果你沒有其他選擇,這還是可以工作的,但是你還是需要認真的考慮一下上面的幾個替代方案。

配置篇

LXD 守護進程的完整配置項列表可以在這裡找到

網路配置

默認情況下 LXD 不會監聽網路。和它通信的唯一辦法是通過 /var/lib/lxd/unix.socket 使用本地 unix 套接字進行通信。

要讓 LXD 監聽網路,下面有兩個有用的命令:

lxc config set core.https_address [::]
lxc config set core.trust_password some-secret-string

第一條命令將 LXD 綁定到 IPv6 地址 「::」,也就是監聽機器的所有 IPv6 地址。你可以顯式的使用一個特定的 IPv4 或者 IPv6 地址替代默認地址,如果你想綁定某個 TCP 埠(默認是 8443)的話可以在地址後面添加埠號即可。

第二條命令設置了密碼,用於讓遠程客戶端把自己添加到 LXD 可信證書中心。如果已經給主機設置了密碼,當添加 LXD 主機時會提示輸入密碼,LXD 守護進程會保存他們的客戶端證書以確保客戶端是可信的,這樣就不需要再次輸入密碼(可以隨時設置和取消)。

你也可以選擇不設置密碼,而是人工驗證每個新客戶端是否可信——讓每個客戶端發送「client.crt」(來自於 ~/.config/lxc)文件,然後把它添加到你自己的可信證書中心:

lxc config trust add client.crt

代理配置

大多數情況下,你會想讓 LXD 守護進程從遠程伺服器上獲取鏡像。

如果你處在一個必須通過 HTTP(s) 代理鏈接外網的環境下,你需要對 LXD 做一些配置,或保證已在守護進程的環境中設置正確的 PROXY 環境變數。

lxc config set core.proxy_http http://squid01.internal:3128
lxc config set core.proxy_https http://squid01.internal:3128
lxc config set core.proxy_ignore_hosts image-server.local

以上代碼使所有 LXD 發起的數據傳輸都使用 squid01.internal HTTP 代理,但與在 image-server.local 的伺服器的數據傳輸則是例外。

鏡像管理

LXD 使用動態鏡像緩存。當從遠程鏡像創建容器的時候,它會自動把鏡像下載到本地鏡像商店,同時標誌為已緩存並記錄來源。幾天後(默認 10 天)如果某個鏡像沒有被使用過,那麼它就會自動地被刪除。每隔幾小時(默認是 6 小時)LXD 還會檢查一下這個鏡像是否有新版本,然後更新鏡像的本地拷貝。

所有這些都可以通過下面的配置選項進行配置:

lxc config set images.remote_cache_expiry 5
lxc config set images.auto_update_interval 24
lxc config set images.auto_update_cached false

這些命令讓 LXD 修改了它的默認屬性,緩存期替換為 5 天,更新間隔為 24 小時,而且只更新那些標記為自動更新(–auto-update)的鏡像(lxc 鏡像拷貝被標記為 –auto-update)而不是 LXD 自動緩存的鏡像。

總結

到這裡為止,你就應該有了一個可以工作的、最新版的 LXD,現在你可以開始用 LXD 了,或者等待我們的下一篇博文,我們會在其中介紹如何創建第一個容器以及使用 LXD 命令行工具操作容器。

額外信息

如果你不想或者不能在你的機器上安裝 LXD ,你可以試試在線版的 LXD

作者簡介:我是 Stéphane Graber。我是 LXC 和 LXD 項目的領導者,目前在加拿大魁北克蒙特利爾的家所在的Canonical 有限公司擔任 LXD 的技術主管。

via: https://www.stgraber.org/2016/03/15/lxd-2-0-installing-and-configuring-lxd-212/

作者:Stéphane Graber 譯者:ezio 校對:PurlingNayuki

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國