LXD 2 0 系列(二) 安裝與配置

2021-09-08 19:13:04 字數 4216 閱讀 7683

簡單來說,lxd是乙個守護程序,為lxc容器的管理提供一組rest api。主要目標是提供一種類虛擬機器的使用者體驗,是一種第三方的容器管理工具。下面呢,我們來介紹lxd 2.0 的安裝與配置。

安裝篇

有很多種辦法可以獲得 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:

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

lxc config set storage.lvm_fstype xfs
簡單目錄如果上面全部方案你都不打算使用,lxd 依然能在不使用任何高階特性情況下工作。它會為每個容器建立乙個目錄,然後在建立每個容器時解壓縮映象的壓縮包,並在容器拷貝和快照時進行一次完整的檔案系統拷貝。

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

配置篇

lxd 守護程序的完整配置項列表可以在這裡找到。

網路配置

預設情況下 lxd 不會監聽網路。和它通訊的唯一辦法是通過 /var/lib/lxd/unix.socket 使用本地 unix 套接字進行通訊。要讓 lxd 監聽網路,下面有兩個有用的命令:

第一條命令將 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 環境變數。

以上**使所有 lxd 發起的資料傳輸都使用 squid01.internal http **,但與在 image-server.local 的伺服器的資料傳輸則是例外。

顯像管理

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

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 2 0 系列(二) 安裝與配置

這是 lxd 2.0 系列介紹文章的第二篇。安裝篇 有很多種辦法可以獲得 lxd。我們推薦你配合最新版的 lxc 和 linux 核心使用 lxd,這樣就可以享受到它的全部特性。需要注意的是,我們現在也在慢慢的降低對舊版本 linux 發布版的支援。ubuntu 標準版 所有新發布的 lxd 都會在...

LXD 2 0 系列(二) 安裝與配置

這是 lxd 2.0 系列介紹文章的第二篇。lxd 入門 安裝與配置 你的第乙個 lxd 容器 資源控制 顯像管理 遠端主機及容器遷移 lxd 中的 docker lxd 中的 lxd 實時遷移 lxd 和 juju lxd 和 openstack 除錯,及給 lxd 做貢獻 有很多種辦法可以獲得 ...

Arcgis Server系列 安裝與配置

其實arcgis server整個安裝過程都比較簡單,不過有幾點需要注意。首先,主機名最好不要用奇怪的名字,比如有下劃線 奇異字元等,不然容易出現不能啟動arcsoc的錯誤。另外,安裝arccatalog後,最好不要安裝中文補丁,不然arcsoc停止或者重啟的時候也容易出現莫名其妙的錯誤,當初我的電...