PUB:Part 2 - LXD 2.0--Installing and configuring LXD

@oska874 @PurlingNayuki 这个系列居然有12篇之多。。
This commit is contained in:
wxy 2016-08-16 10:57:43 +08:00
parent 078175fa5e
commit c99f1586c6

View File

@ -1,4 +1,4 @@
Part 2 - LXD 2.0: 安装与配置
LXD 2.0 系列(二):安装与配置
=================================================
这是 LXD 2.0 [系列介绍文章][2]的第二篇。
@ -11,7 +11,7 @@ Part 2 - LXD 2.0: 安装与配置
#### Ubuntu 标准版
所有新发布的 LXD 都会在发布几分钟后上传到 Ubuntu 开发版的安装源里。这个安装包然后就会当作种子给全部其他的安装包源,供 Ubuntu 用户使用
所有新发布的 LXD 都会在发布几分钟后上传到 Ubuntu 开发版的安装源里。这个安装包然后就会作为 Ubuntu 用户的其他安装包源的种子
如果使用 Ubuntu 16.04,可以直接安装:
@ -54,7 +54,7 @@ sudo emerge --ask lxd
#### 使用源代码安装
如果你曾经编译过 Go 语言的项目,那么从源代码编译 LXD 并不是十分困难。然而注意,你需要 LXC 的开发头文件。为了运行 LXD 你的发布版需也要使用比较新的内核(最起码是 3.13)、比较新的 LXC 1.1.4 或更高版本、LXCFS 以及支持用户子 uid/gid 分配的 shadow。
如果你曾经编译过 Go 语言的项目,那么从源代码编译 LXD 并不是十分困难。然而注意,你需要 LXC 的开发头文件。为了运行 LXD 你的发布版需也要使用比较新的内核(最起码是 3.13)、比较新的 LXC 1.1.4 或更高版本、LXCFS 以及支持用户子 uid/gid 分配的 shadow 文件
从源代码编译 LXD 的最新教程可以在[上游 README][2]里找到。
@ -76,13 +76,13 @@ sudo lxd init
### 存储后端
LXD 提供了许多集中存储后端。在开始使用 LXD 之前,你应该决定将要使用的后端,因为我们不支持在后端之间迁移已经生成的容器。
LXD 提供了几种存储后端。在开始使用 LXD 之前,你应该决定将要使用的后端,因为我们不支持在后端之间迁移已经生成的容器。
各个[后端特性比较表][3]可以在[这里][3]找到。
#### ZFS
我们的推荐是 ZFS 因为它能支持 LXD 的全部特性,同时提供最快和最可靠的容器体验。它包括了以容器为单位的磁盘配额,即时快照和恢复,优化了的迁移(发送/接收),以及快速从镜像创建容器的能力。它同时也被认为要比 btrfs 更成熟。
我们的推荐是 ZFS 因为它能支持 LXD 的全部特性,同时提供最快和最可靠的容器体验。它包括了以容器为单位的磁盘配额、即时快照和恢复、优化后的迁移(发送/接收),以及快速从镜像创建容器的能力。它同时也被认为要比 btrfs 更成熟。
要和 LXD 一起使用 ZFS ,你需要首先在你的系统上安装 ZFS。
@ -112,11 +112,11 @@ sudo apt install ubuntu-zfs
sudo lxd init
```
这条命令接下来会向你提问一下一些 ZFS 的配置细节,然后为你配置好 ZFS。
这条命令接下来会向你提问一些 ZFS 的配置细节,然后为你配置好 ZFS。
#### btrfs
如果 ZFS 不可用,那么 btrfs 可以提供相同级别的集成,但不会合理地报告容器内的磁盘使用情况(虽然配额仍然可用)。
如果 ZFS 不可用,那么 btrfs 可以提供相同级别的集成,但不能正确地报告容器内的磁盘使用情况(虽然配额仍然可用)。
btrfs 同时拥有很好的嵌套属性,而这是 ZFS 所不具有的。也就是说如果你计划在 LXD 中再使用 LXD那么 btrfs 就很值得你考虑。
@ -126,14 +126,13 @@ btrfs 同时拥有很好的嵌套属性,而这是 ZFS 所不具有的。也就
如果 ZFS 和 btrfs 都不是你想要的,你还可以考虑使用 LVM 以获得部分特性。 LXD 会以自动精简配置的方式使用 LVM为每个镜像和容器创建 LV如果需要的话也会使用 LVM 的快照功能。
要配置 LXD 使用 LVM需要创建一个 LVM VG然后运行
要配置 LXD 使用 LVM需要创建一个 LVM 卷组,然后运行:
```
lxc config set storage.lvm_vg_name "THE-NAME-OF-YOUR-VG"
```
默认情况下 LXD 使用 ext4 作为全部 LV 的文件系统。如果你喜欢的话可以改成 XFS
默认情况下 LXD 使用 ext4 作为全部逻辑卷的文件系统。如果你喜欢的话可以改成 XFS
```
lxc config set storage.lvm_fstype xfs
@ -151,7 +150,7 @@ LXD 守护进程的完整配置项列表可以在[这里找到][4]。
#### 网络配置
默认情况下 LXD 不会监听网络。和它通信的唯一办法是通过 `/var/lib/lxd/unix.socket` 使用本地 unix socket 进行通信。
默认情况下 LXD 不会监听网络。和它通信的唯一办法是通过 `/var/lib/lxd/unix.socket` 使用本地 unix 套接字进行通信。
要让 LXD 监听网络,下面有两个有用的命令:
@ -160,11 +159,11 @@ lxc config set core.https_address [::]
lxc config set core.trust_password some-secret-string
```
第一条命令将 LXD 绑定到 IPv6 地址 “::”,也就是监听机器的所有 IPv6 地址。你可以显式的使用一个特定的 IPv4 或者 IPv6 地址替代默认地址,如果你想绑定 TCP 端口(默认是 8443的话可以在地址后面添加端口号即可。
第一条命令将 LXD 绑定到 IPv6 地址 “::”,也就是监听机器的所有 IPv6 地址。你可以显式的使用一个特定的 IPv4 或者 IPv6 地址替代默认地址,如果你想绑定某个 TCP 端口(默认是 8443的话可以在地址后面添加端口号即可。
第二条命令设置了密码,用于让远程客户端用来把自己添加到 LXD 可信证书中心。如果已经给主机设置了密码,当添加 LXD 主机时会提示输入密码LXD 守护进程会保存他们的客户端证书以确保客户端是可信的,这样就不需要再次输入密码(可以随时设置和取消)。
第二条命令设置了密码,用于让远程客户端把自己添加到 LXD 可信证书中心。如果已经给主机设置了密码,当添加 LXD 主机时会提示输入密码LXD 守护进程会保存他们的客户端证书以确保客户端是可信的,这样就不需要再次输入密码(可以随时设置和取消)。
你也可以选择不设置密码,然后通过给每个客户端发送“client.crt”来自于 `~/.config/lxc`)文件,然后把它添加到你自己的可信中信来实现人工验证每个新客户端是否可信,可以使用下面的命令
你也可以选择不设置密码,而是人工验证每个新客户端是否可信——让每个客户端发送“client.crt”来自于 `~/.config/lxc`)文件,然后把它添加到你自己的可信证书中心
```
lxc config trust add client.crt
@ -186,7 +185,7 @@ lxc config set core.proxy_ignore_hosts image-server.local
#### 镜像管理
LXD 使用动态镜像缓存。当从远程镜像创建容器的时候,它会自动把镜像下载到本地镜像商店,同时标志为已缓存并记录来源。几天后(默认 10 天)如果某个镜像没有被使用过,那么它就会自动地被删除。每几小时(默认是 6 小时LXD 还会检查一下这个镜像是否有新版本,然后更新镜像的本地拷贝。
LXD 使用动态镜像缓存。当从远程镜像创建容器的时候,它会自动把镜像下载到本地镜像商店,同时标志为已缓存并记录来源。几天后(默认 10 天)如果某个镜像没有被使用过,那么它就会自动地被删除。每几小时(默认是 6 小时LXD 还会检查一下这个镜像是否有新版本,然后更新镜像的本地拷贝。
所有这些都可以通过下面的配置选项进行配置:
@ -196,8 +195,7 @@ lxc config set images.auto_update_interval 24
lxc config set images.auto_update_cached false
```
这些命令让 LXD 修改了它的默认属性,缓存期替换为 5 天,更新间隔为 24 小时而且只更新那些标记为自动更新的镜像lxc 镜像拷贝被标记为 `auto-update`)而不是 LXD 自动缓存的镜像。
这些命令让 LXD 修改了它的默认属性,缓存期替换为 5 天,更新间隔为 24 小时而且只更新那些标记为自动更新auto-update的镜像lxc 镜像拷贝被标记为 `auto-update`)而不是 LXD 自动缓存的镜像。
### 总结
@ -205,13 +203,10 @@ lxc config set images.auto_update_cached false
### 额外信息
LXD 的主站在: <https://linuxcontainers.org/lxd>
LXD 的 GitHub 仓库: <https://github.com/lxc/lxd>
LXD 的邮件列表: <https://lists.linuxcontainers.org>
LXD 的 IRC 频道: #lxcontainers on irc.freenode.net
- LXD 的主站在: <https://linuxcontainers.org/lxd>
- LXD 的 GitHub 仓库: <https://github.com/lxc/lxd>
- LXD 的邮件列表: <https://lists.linuxcontainers.org>
- LXD 的 IRC 频道: #lxcontainers on irc.freenode.net
如果你不想或者不能在你的机器上安装 LXD ,你可以[试试在线版的 LXD][1]。