当前位置: 首页 > news >正文

LXD 2.0系列之二:LXD安装和配置

本文讲的是LXD 2.0系列之二:LXD安装和配置 【编者的话】 第三方调查报告 显示LXD有潜质成为一款受欢迎的第三方容器管理工具。本文是LXD核心维护者、加拿大程序员Stéphane Graber有关LXD连载博文的第二篇。

containers.png


[LXD 2.0系列开篇:是时候讨论LXD的一切了]
[LXD 2.0系列之一:LXD简介]
[LXD 2.0系列之二:LXD安装和配置]
[LXD 2.0系列之三:你的第一个LXD容器]
[LXD 2.0系列之四:资源管理]
[LXD 2.0系列之五:镜像管理]
[LXD 2.0系列之六:远程主机和容器迁移]
[LXD 2.0系列之七:LXD中的Docker]
[LXD 2.0系列之八:LXD中的LXD]
[LXD 2.0系列之九:在线迁移]
[LXD 2.0系列之十:LXD和Juju]
[LXD 2.0系列之十一:LXD和OpenStack]
[LXD 2.0系列之十二:调试和改进LXD]

LXD 2.0系列的第二篇博文,关于LXD的安装和配置。

如何下载LXD及安装

很多的办法可以得到最新的LXD。我们推荐使用最新的LXC和Linux内核,因为这可以使用到它所有的功能,当然我们也会尽可能地通过谨慎的降级来支持老的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(个人包档案)来找到LXD:

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在系统中跑起来,你的反应版也必须是最近的Linux内核(至少3.13),LXC(1.1.5或更高版本),LXCFS以及相应的shadow程序,来支持用户id或组id的分配。

源码编译LXD的最新说明,可以在 上游的README 中找到。

存储方式

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配置的问题,根据的回应帮你做相应的配置。

btrfs

如果没有合适的ZFS,btrfs也可以提供差不多的功能,除了一点,它不能准确地报告容器中磁盘的使用情况(磁盘配额的功能就无法支持了)。btrfs也有一个自己的特色,支持嵌套,ZFS还没有这个功能。也就是说,如果你打算在LXD中使用LXD,btrfs值得考虑。

使用btrfs,LXD中不需要做任何配置,你只要确认/var/lib/lxd在btrfs文件系统中已经存在,LXD会自动使用。

LVM

如果ZFS和btrfs都不是你的选择的话,你仍然可以使用LVM来获得一些类似的功能。LXD需要LVM的这些功能:精简资源调配(thin provisioning),为每个镜像和容器创建逻辑分区,使用LVM快照。

使用LVM需配置LXD,创建一个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不会监听网络。唯一和它通信的方法就是通过本地Unix套接字/var/lib/lxd/unix.socket。

如果想使它监听网络,有两种键值需要设置:

lxc config set core.https_address [::]
lxc config set core.trust_password some-secret-string
第一键值,将LXD绑定在::的IPv6地址上,即,本机所有地址。显然你可以将它换成一个IPv4或IPv6的地址,也可以增加你需要的TCP端口(默认是8443)。

第二个键值,设置了一个密码,用于远端客户端将它们自己加到LXD证书信任库中。当增加LXD主机时,会提示输入密码,如果密码符合,LXD守护进程将会存下客户端的证书,把它们列为可信任的,以后就不再需要密码了(当然也可密码也可修改和重置)。

你也 可以选择不设置密码,让每个客户端给你他们的证书文件client.crt(存于~/.config/lxc目录中),手动把每一个客户端加入到信任列表:

lxc config trust add client.crt

代理设置

大多数情况下,你将需要LXD从远端服务器取一些镜像。

如果你的环境中,必须通过一个HTTP(s)的代理才能访问外面的网络,你会想做一些设置,或者通过标准的代理环境变量,设置在LXD守护进程中。

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
这样我们就可以修改所有这些的默认值,未被使用的缓存镜像最多存在5个小时,并且每24小时去检查镜像是否有更新,只有那些有(--auto-update)标记的镜像才会被LXD更新。

结论

现在,你应该有最新的LXD工作版本,就可以开始使用,或者等待下一个博客帖子里,我们将用LXD命令行工具创建我们第一个容器。

参考文献

  • LXD网站: https://linuxcontainers.org/lxd
  • Github: https://github.com/lxc/lxd
  • 邮件列表: https://lists.linuxcontainers.org
  • IRC聊天室: #lxcontainers, irc.freenode.net

如果你等不及未来的博文,就想尝试LXD,你可以在网上根据我们的指导,通过浏览器免费 在线试用LXD

原文链接:LXD 2.0: Introduction to LXD [2/12](翻译:Henry Huang )

==================================================
译者介绍
Henry Huang ,供职于AWS,曾负责集群运维的工作。

原文发布时间为:2016-03-21 
本文作者:henrysher
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:LXD 2.0系列之二:LXD安装和配置

相关文章:

  • Java调用JavaFX的方法
  • ORA-04089: 无法对 SYS 拥有的对象创建触发器
  • Java获取URL中的顶级域名domain的工具类
  • CSS实现空心三角指示箭头
  • TPYBoard开发板ADC数模转换一: 初识ADC使用
  • no.4 数据和C 06
  • W3School Redis教程(安装/基本操作/高级操作/命令/官方文档/官方集群教程)
  • Go语言与数据库开发:01-06
  • js 日期计算
  • vue 请求后台数据
  • Unity3D-RayMarch-几何图元-3添加阴影
  • es6--symbol
  • 元组、函数详解
  • jQuery基本过滤选择器
  • HTML5实现文字轮滚
  • 【面试系列】之二:关于js原型
  • ECMAScript入门(七)--Module语法
  • egg(89)--egg之redis的发布和订阅
  • FastReport在线报表设计器工作原理
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Laravel核心解读--Facades
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 前端路由实现-history
  • 如何编写一个可升级的智能合约
  • 思否第一天
  • 一些关于Rust在2019年的思考
  • 异步
  • 如何正确理解,内页权重高于首页?
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #、%和$符号在OGNL表达式中经常出现
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (4.10~4.16)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (力扣)循环队列的实现与详解(C语言)
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • **python多态
  • .gitignore文件---让git自动忽略指定文件
  • .md即markdown文件的基本常用编写语法
  • .NET Core 中插件式开发实现
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET 使用 XPath 来读写 XML 文件
  • .NET轻量级ORM组件Dapper葵花宝典
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • @Autowired 与@Resource的区别
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [20161101]rman备份与数据文件变化7.txt
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [ABC294Ex] K-Coloring
  • [ActionScript][AS3]小小笔记