当前位置: 首页 > 科技观察

LXD2.0系列(二):安装配置

时间:2023-03-12 01:41:22 科技观察

这是LXD2.0系列介绍文章的第二篇。安装章节有很多获取LXD的方法。我们建议您使用最新版本的LXC和Linux内核的LXD,以便您可以享受它的所有功能。请注意,我们现在也在慢慢减少对旧版Linux发行版的支持。UbuntuStandard的所有新LXD版本将在发布几分钟后上传到UbuntuDevelopment存储库。然后这个包被用作Ubuntu用户其他包的种子。如果你使用的是Ubuntu16.04,你可以直接安装:sudoaptinstalllxd如果你运行的是Ubuntu14.04,你可以这样安装:sudoapt-ttrusty-backportsinstalllxdUbuntuCore使用UbuntuCore稳定版的用户可以使用以下命令安装LXD:sudosnappyinstalllxd.stgraberUbuntu官方PPA使用其他Ubuntu发行版的用户-例如Ubuntu15.10-可以添加以下PPA(PersonalPackageArchive)来安装:sudoapt-add-repositoryppa:ubuntu-lxc/stablesudoaptupdatesudoaptdist-upgradesudoaptinstalllxdGentooGentoo已经有了最新的LXD包,你可以直接安装:sudoemerge--asklxd从源码安装如果你编译过Go语言项目,从源码编译LXD并不是很难。但是请注意,您需要LXC开发标头。为了运行LXD,您的发行版还需要使用更新的内核(至少3.13)、更新的LXC(1.1.4或更高版本)、LXCFS和支持用户sub-uid/gid分配的影子文件。从源代码编译LXD的最佳教程可以在上游README中找到。Ubuntu上的网络配置Ubuntu安装程序方便地为您提供了一个“lxdbr0”网桥。默认情况下未配置此网桥,仅通过HTTP代理提供IPv6本地连接。要配置这个网桥并添加IPv4和IPv6子网,可以运行以下命令:sudodpkg-reconfigure-pmediumlxd或者直接通过LXD初始化命令逐步配置:sudolxdinitstoragebackendLXD提供了几个存储后端。在开始使用LXD之前,您应该决定要使用哪个后端,因为我们不支持在后端之间迁移生成的容器。可以在此处找到每个后端的功能比较表。ZFS我们推荐的是ZFS,因为它支持LXD的所有特性,同时提供最快和最可靠的容器体验。它包括每个容器的磁盘配额、即时快照和恢复、优化的迁移(发送/接收)以及从图像快速创建容器的能力。它也被认为比btrfs更成熟。要将ZFS与LXD一起使用,您需要先在系统上安装ZFS。如果您使用的是Ubuntu16.04,您只需使用以下命令安装它:sudoaptinstallzfsutils-linux在Ubuntu15.10上,您可以这样安装:sudoaptinstallzfsutils-linuxzfs-dkms对于旧版本,您需要从zfsonlinuxPPA安装它:sudoapt-add-repositoryppa:zfs-native/stablesudoaptupdatesudoaptinstallubuntu-zfs要配置LXD,你只需要执行以下命令:sudolxdinit这个命令会询问你一些ZFS配置细节,然后为你配置ZFS。如果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卷组,然后运行:lxcconfigsetstorage.lvm_vg_name"THE-NAME-OF-YOUR-VG"默认情况下,LXD使用ext4作为所有逻辑卷的文件系统。如果您愿意,可以更改为XFS:lxcconfigsetstorage.lvm_fstypexfs简单目录如果您不打算使用以上所有内容,LXD仍然可以在不使用任何高级功能的情况下工作。它为每个容器创建一个目录,然后在创建每个容器时解压缩图像的tarball,并在复制和快照容器时制作完整的文件系统副本。支持磁盘配额以外的功能,但会浪费磁盘空间并且速度很慢。如果你没有其他选择,这仍然可以工作,但你仍然需要认真考虑上面的几个备选方案。可以在此处找到LXD守护程序的完整配置项列表。网络配置默认情况下,LXD不监听网络。与它通信的唯一方法是通过/var/lib/lxd/unix.socket使用本地unix套接字。要让LXD监听网络,有两个有用的命令:lxcconfigsetcore.https_address[::]lxcconfigsetcore.trust_passwordsome-secret-string第一个命令将LXD绑定到IPv6地址“::”,这是监听机器的所有IPv6地址.您可以显式使用特定的IPv4或IPv6地址而不是默认地址,如果要绑定到TCP端口(默认为8443),您可以在地址后添加端口号。第二条命令为远程客户端设置一个密码,以将其自身添加到LXD受信任的证书中心。如果已经为主机设置了密码,添加LXD主机时会提示输入密码,LXD守护进程会保存他们的客户端证书,确保客户端是可信的,这样就不需要输入密码了再次(可随时设置和取消)。您也可以选择不设置密码,但手动验证每个新客户端是否受信任-让每个客户端发送一个“client.crt”(来自~/.config/lxc)文件,并将其添加到您自己的受信任证书颁发机构:lxcconfigtrustaddclient.crt代理配置在大多数情况下,您会希望LXD守护进程从远程服务器获取图像。如果你在一个必须通过HTTP(s)代理连接到外部网络的环境中,你需要在LXD上做一些配置,或者确保在守护进程的环境中设置正确的PROXY环境变量。lxcconfigsetcore.proxy_http://squid01.internal:3128lxcconfigsetcore.proxy_httpshttp://squid01.internal:3128lxcconfigsetcore.proxy_ignore_hostsimage-server.local上面的代码使得LXD发起的所有数据传输都使用squid01.internalHTTP代理,但是带有image-server数据传输到.local服务器是一个例外。图像管理LXD使用动态图像缓存。当从远程镜像创建容器时,它会自动将镜像下载到本地镜像存储,标记为已缓存并记录来源。几天后(默认为10天),如果一个镜像没有被使用,它会被自动删除。每隔几个小时(默认是6小时)LXD也会检查这个镜像是否有新版本,然后更新镜像的本地副本。所有这些都可以使用以下配置选项进行配置:lxcconfigsetimages.remote_cache_expiry5lxcconfigsetimages.auto_update_interval24lxcconfigsetimages.auto_update_cachedfalse这些命令让LXD修改其默认属性,将缓存周期替换为5天,更新间隔替换为24小时,并且只更新那些标记为自动的更新的(--auto-update)镜像(标有--auto-update的lxc镜像副本)而不是LXD自动缓存镜像。在这里总结一下,您应该有一个可用的最新版本的LXD,现在您可以开始使用LXD,或者等待我们的下一篇博文,我们将在其中解释如何使用LXD命令行工具创建第一个容器和操作容器。