2017年6月

没错,这就是一篇炫耀贴。老王的朋友都知道老王最近一直在念叨着 LinuxCon 大会,这不,就在今天,我等了几个月之久的 LinuxCon 终于在北京国家会议中心召开了!

一大早,嗯,严格来说是早上 4 点,我就起床了,由于要出去参加整整一天的 LinuxCon,所以我得提前将今天要编发的内容准备好。忙完 Linux 中国网站要发的内容之后,我又经过了一个小时的车程,终于赶在签到时间前到达了本次 LinuxCon 大会的现场——北京国家会议中心。

来早了的国家会议中心

想着等会就能见到心目中的大神: Linus Torvalds —— Linux 之父,还真有点小激动。

这次大会,虽然门票是真贵,但是——它居然提供早餐,而且不仅如此,会场的茶歇、午餐,也都提供!甚至,就在会议结束,大家准备各回各家时,它居然还提供了晚餐!晚餐!!这简直是一场太酷的技术大会了——要我说,这种大会多来几场,我肯定次次都要来啊!

好了,不能这么没出息,我不是为吃的来的。

会议早餐

场外喜逢格雷

汇合了 Linux 中国的小伙伴们之后,我们换上了 LinuxCon 大会专属 T 恤,围在小桌前开始吃自助早餐时,突然,远处出现一位“高人”,真的是“高”人啊。在那些端着盘子、站着吃饭的观众们中间,有一位个子很高、顶部闪闪发亮的“高”人在移动,简直不要太醒目!

他是谁?

对 LinuxCon 仔细做过功课的我,一下就认出了,原来是格雷啊,就是那个经常出现在内核邮件列表中的 Greg Kroah-Hartman 啊!好吧,我知道你也不会念他的名字,所以,你就知道他就是那位负责维护所有的稳定版的 Linux内核分支的人就好了。

格雷就负责那些绿色的稳定版系列维护

本着机会难得,我和小伙伴们匆匆丢下嘴边的食物,马上围上前去,通过简单的比划,表达了我们美好的愿望。格雷一路“呵呵”地和我们大伙合影、和我单独合影。别说,这快活的“呵呵”笑声,让我觉得格雷老兄特忠厚。

好了,无图无真相,扯这么多都不上图,你们可要砸键盘了!

老王与格雷的合影

看见没,老王身高有 170 公分,可我才到格雷老兄的肩膀!!!觉不觉得我们两个的光头熠熠生辉?!(划重点,光头)

遭遇一个笑容满面的吉姆

对比了一下身高之后略感挫败的我,接着就准备进入主会场了。

由于进场时间比较早,我们就坐到了最中间的前排,然后,我们就又发现一位“熟”人——我已经在各种资料中很多次见过他的面容啦——Linux 基金会执行总监,Jim Zemlin,让我们就叫他吉姆吧。

由于受刚才和格雷老哥合影成功的鼓舞,我就壮起胆子,大家组队去(打 BOSS,删掉)找吉姆合影啦。吉姆果然如人家说的,是个很热情的人,不但满足了我们组队的要求,还允许我们换着人来单打。而且,可能是受他真诚的笑容感染,我们居然很自然的勾肩搭背地照了好几张。逮着眼镜的吉姆,一看就是那种真心开心的笑容,我觉得他肯定为大会终于在中国召开了而高兴!别人的合影我就不放了,我就放我与吉姆的一张吧:

老王和吉姆的合影

后来,我发现我们的小伙伴netb2c和吉姆有一张神奇的照片,我觉得我得分享给大家,希望不要被他看到,哈哈哈哈。(划重点,眼镜)

好诡异的蓝色眼镜!

不知道你看到这里什么感受,是不是很羡慕啊。都说了,这是一个炫耀贴嘛——所有的技术干货这里都不会提及,我会以后专门写一篇干货分享的——如果有时间 :D

真正的炫耀,在这里

你以为这就够了?错!

事实上,在之前,老王真心没有任何预料到会和心目中的大神有近距离接触。因为有朋友给我说,Linus Torvalds 不喜和人合影——这也可以理解嘛,Linus 是一个率真而低调的人,要是一个个粉丝们合影过来,估计就没写代码的时间了。

因此,下午老王受邀参加 Linux 基金会的新闻发布会时,虽然知道Linus 会出席,但是真心没想着能近距离接触到他。

为了怕参加新闻发布会人太多,我一样是早早抵达会场,在很前面的第二排找了个位置,因为第一排据说是预留座位。

过了一会儿,吉姆来了,嗯,看来快开始了——突然,旁边走过去一个胖子,额,说胖子也不对,其实就像老王一样,中年发福有肚腩而已。只见他身着灰黑 T恤,穿着牛仔裤,踩着轻快的脚步,一路走了进来!

啊啊啊啊,Linus Torvalds 就这样一不留神进来了!

然后,他就坐在我前面一排了。紧张,由于担心失礼,老王没敢拿出相机来,就掏出手机来偷偷拍两张。

拍个侧影,应该不会被发现

这侧面还是挺有型的吧!

嘿,照了几张之后,好像不会被发现哎,但是我还是不敢冲到前面去对着他拍照,万一生气把我赶出去呢。

接下来的新闻发布会上,到了问答环节,老王在得到提问机会后,马上就抛出了早已准备好的问题:

老王:看来每个人面对偶像时都会紧张啊。现在 Linux 已经取得很大的成功,那么我想请问 Linus Torvalds 先生,您认为 Linux 和您个人所取得的成功是一种偶然还是必然?谢谢。

Linus Torvalds 表示,这份成功的背后既有必然性,也有偶然性。如果 Linux 出现再早几年就可能赶不上互联网的发展,也就不会有社区协作、网络传播的支持,就很难取得这样的成功;而要是再晚几年,可能成功的就是另外的操作系统,或许不是 Linux 和他了,但是必然会有一种适应需求而出现的操作系统。

新闻发布会结束时,大家马上一拥而上,我旁边的美女一个箭步,顺利拉住了 Linus 的注意力,成功拿到了 Linus Torvalds 在 LinuxCon 上的第一个签名!让旁边的我们羡慕嫉妒恨啊!!!Linus 在被围观之后,发现根本走不开,居然同意和大家来一张大合影!老王马上开始考虑站位问题,既要有礼貌风度,又不能在合影里面只露出半个脑袋。

然而,经过一番站位博弈之后,老王发现,还是只有蹲在 Linus 身前才比较合适。不过这张照片抓拍时间不够好,Linus 在看啥呐?

老王背后是不专心合影的 Linus Torvalds 和陆首群先生

原本以为有个合影就是奢望的我,当然还是希望得到人更少一些的合影了。在鄙视了那些拿出手机,蹭到 Linus 身前强行自拍的人之后(其实是老王比较腼腆);终于捞到了一个和 LinuxStory 社区创始人闻其详一同与 Linus Torvalds 合影的机会。

从左到右:Linux 中国的王兴宇、Linus Torvalds、LinuxStory 的闻其详

等等,Linus 左肩上的那个手是谁的?!你这让我们怎么把你 P 掉啊!忍不住炫耀之心给朋友们看了之后,大家纷纷表示,请把右边那个人 P 掉,哈哈。

惊喜之外

LinuxCon 议程有两天,20日上午,Linus Torvalds 会有一个公开访谈环节。因此,第二天一早,我们的 Linux 小伙伴 Bestony 就早早就位最佳直播位。

非常幸运的是,老王在 Linus 上台预备前,又一次遇到了他。这次,老王可是有备而来,专门拿出 Linux 唯一的一本自传:《 只是为了好玩 Just for Fun 》,请他帮我签了名——虽然旁边工作人员极力阻挠,但是 Linus Torvalds 还是非常通情达理地为我签了名,哈哈哈!

Linus Torvalds 的签字

这本书我可得收藏好了!


对了,之后就是 Linus Torvalds 的访谈了,我们的小伙伴 Bestony 已经做了直播,没赶上直播的同学,可以稍后观看我们剪辑和配置字幕的视频,敬请期待!

预测趋势是棘手的,尤其是在快速发展的系统运维和工程领域。2016 年,在我们的 Velocity 大会上,我们讨论了分布式系统、SRE、容器化、无服务架构,人员倦怠以及与提供软件相关的人力与技术挑战等诸多问题。以下是我们认为的下一年的趋势:

1、 分布式系统

我们认为这个很重要,我们在整个 Velocity 会议上再次关注了它

2、 站点可靠性工程(SRE)

站点可靠性工程 Site Reliability Engineering (SRE)-它只是运维么?或者它是 DevOps 的另外一个名称吗?这是 Google 对那些需要做大量系统及软件工程的运维专业人士的称呼。它由在像 Dropbox 公司的前 Google 人向业内推广,招聘 SRE 的职位正不断增加,特别是有大型数据中心的面向网络的公司。在某些情况下,SRE 的作用更多地是帮助开发人员运营自己的服务。

3、 容器化

公司将继续容器化它们的软件交付。Docker 公司本身已经将 Docker 定位为“增量革命”的工具,对遗留应用进行容器化已成为企业的常见案例。Docker 的未来是什么?随着工程师继续采用诸如 Kubernetes 和 Mesos 之类的编排工具,更高层次的抽象可能为其他容器(如 rkt、Garden 等)提供更多空间。

4、 Unikernels

unikernels 是容器化之后的下一步么?它们不合适产品环境么?有些人吹捧 unikernels 的安全和性能好处。关注一下 unikernels 在 2017 是如何进化的,特别要关注下 Dokcer 公司在这个领域做的。(今年它已经收购了 Unikernel Systems)

5、 无服务架构 Serverless

无服务架构视功能为基础的计算单元。有些人认为这个术语是误导性的(让人想起 “noops”),并且更倾向于把这个趋势称为“ 功能即服务 Functions-as-a-Service ”(FaaS)。开发人员和架构师正在越来越多地尝试这个技术,并期望看到有越来越多的程序用这个范式编写。更多关于 serverless/FaaS 对运维的意义,请查看 Michael Hausenblas 的 Serverless 运维免费电子书。

6、 原生云程序开发

就像 DevOps,这个术语已经被市场人员使用并滥用很久了,但是 云计算基金会 Cloud Native Computing Foundation (CNCF)为这些新工具(通常是谷歌发起的)做了一个很好的例子,这些工具不仅利用了云,而且特别还在于分布式系统(即微服务,容器化和动态编排)所提供的优势和机会。

7、 监控

随着行业从 Nagios 风格的监控发展到流化指标和可视化,我们在生产越来越多的系统数据,而如何理解它们则是下一个挑战,因此,我们看到供应商开始提供具有机器学习功能的监控服务,以及更普遍的是 IT 运营人员开始去研究让机器学习分析系统数据的技术。同样,随着我们的基础设施变得更加动态和分布式,监控越来越少地检查某个资源的健康状况,更多的是在服务之间追踪流量。因此,分布式跟踪已经出现。

8、 DevOps 安全

随着 DevOps 安全的普及,安全性正在迅速成为团队范围的关注。当重视安全和合规方面的公司在速度的竞争上感到了压力时,要同时满足速度和可靠性的 DevOps 所面对的经典挑战尤其明显。

告诉我们关于你的工作

作为一名 IT 运维专业人员 - 你是否使用系统管理的术语如 DevOps、SRE、DBA 等等。- 欢迎你来分享你的见解


作者简介:

Courtney Nash 主持 O'Reilly Media 的多个会议,是专注于现代网络运维、高性能程序和安全性的战略内容总监。一位前学术神经科学家,她仍然对大脑着迷,以及它如何告诉我们与技术互动和对技术的期望。自从移居西雅图,在一家蓬勃发展的在线书店工作之后,她花了 17 年的时间从事技术行业的各种工作。在外面,你可以看到 Courtney 在骑自行车、徒步旅行、滑雪。。。

O'Reilly Media 的基础架构和运维编辑 Brian Anderson 介绍了从传统系统管理到云计算、Web 性能、Docker 和 DevOps 等软件交付的重要内容。他一直从事在线教育,服务于学习者的需求超过十多年。


via: https://www.oreilly.com/ideas/top-8-systems-operations-and-engineering-trends-for-2017

作者:Courtney Nash, Brian Anderson 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LG 制造的 Nexus 5,奇巧(KitKat)的首发设备。

Android 4.4,奇巧——更完美,更少的内存占用

谷歌安卓 4.4 的发布确实很讨巧。谷歌和雀巢公司合作,新版系统的代号是“奇巧(KitKat)”,并且它是在 2013 年 10 月 31 日发布的,也就是万圣节。雀巢公司推出了限量版带安卓机器人的奇巧巧克力,它的包装也帮助新版系统推广,消费者有机会赢取一台 Nexus 7。

一部新的 Nexus 设备也随奇巧一同发布,就是 Nexus 5。新旗舰拥有迄今最大的显示屏:一块五英寸、1920x1080 分辨率的 LCD 显示屏。除了更大尺寸的屏幕,Nexus 5 的制造商 LG 还将 Nexus 5 的机器大小控制得和 Galaxy Nexus 或 Nexus 4 差不多。

Nexus 5 相对同时期的高端手机配置算是标准了,拥有 2.3Ghz 骁龙 800 处理器和 2GB 内存。手机再次在 Play 商店销售无锁版,相同配置的大多数手机价格都在 600 到 700 美元之间,但 Nexus 5 的售价仅为 350 美元。

奇巧最重要的改进之一你并不能看到:显著减少的内存占用。对奇巧而言,谷歌齐心协力开始了降低系统和预装应用内存占用的努力,称作“Project Svelte”。经过了无数的优化工作和通过一个“低内存模式”(禁用图形开销大的特效),安卓现在可以在 340MB 内存下运行。低内存需求是件了不起的事,因为在发展中国家的设备——智能手机增长最快的市场——许多设备的内存仅有 512MB。冰淇淋三明治更高级的 UI 显著提高了对安卓设备的系统配置要求,这使得很多低端设备——甚至是新发布的低端设备——的安卓版本停留在姜饼。奇巧更低的配置需求意味着这些廉价设备能够跟上脚步。有了奇巧,谷歌希望完全消灭姜饼(写下本文时姜饼的市场占有率还在 20% 左右)。只是降低系统需求还不够,甚至有报道称谷歌将不再授权谷歌应用给姜饼设备。

除了给低端设备带来更现代版本的系统,Project Svelte 更低的内存需求同样对可穿戴设备也是个好消息。Google Glass 宣布它会切换到这个更精简的系统,Android Wear 同样也运行在奇巧之上。安卓 4.4 带来的更低的内存需求以及 4.3 中的通知消息 API 和低功耗蓝牙支持给了可穿戴计算漂亮的支持。

奇巧的亮点还有无数精心打磨过的核心系统界面,它们无法通过 Play 商店升级。系统界面,拨号盘,时钟还有设置都能看到升级。

奇巧在 Google Now 启动器下的透明系统栏。 [Ron Amadeo 供图]

奇巧不仅去掉了讨人厌的锁屏左右屏的线框——它还默认完全禁用了锁屏小部件!谷歌明显感觉到了多屏锁屏和锁屏主屏对新用户来说有点复杂,所以锁屏小部件现在需要从设置里启用。锁屏和时钟里不平衡的时间字体换成了一个对称的字重,看起来好看多了。

在奇巧中,应用拥有将系统栏和状态栏透明的能力,显著地改变了系统的外观。系统栏和状态栏现在混合到壁纸和启用透明栏的应用中去了。这些栏还能通过新功能“沉浸”模式完全被应用隐藏。

奇巧是“电子”科幻风格的棺材上的最后一颗钉子,几乎完全移除了系统的蓝色痕迹。状态栏图标由蓝色变成中性的白色。主屏的状态栏和系统栏并不是完全透明的;它们有深色的渐变,这样在使用浅色壁纸的时候白色的图标还能轻易地识别出来。

Google Now 和文件夹的调整。 [Ron Amadeo 供图]

在 Nexus 5 上随奇巧到来的主屏实际上由 Nexus 5 独占了几个月,但现在任何 Nexus 设备都能拥有它了。新的主屏叫做“Google Now Launcher”,它实际上是谷歌搜索应用。是的,谷歌搜索从一个简单的搜索框成长到了整个主屏幕,并且在奇巧中,它涉及了壁纸、图标、应用抽屉、小部件、主屏设置、Google Now,当然,还有搜索框。由于搜索现在运行在整个主屏幕,任何时候只要打开了主屏并且屏幕是点亮的,就可以通过说“OK Google”激活语音命令。在搜索栏有引导用户说出“OK Google”的文本,在几次使用后这个介绍会隐去。

Google Now 的集成度现在更高了。除了通常的系统栏上滑激活,Google Now 还占据了最左侧的主屏。新版还引入了一些设计上的调整。谷歌的 logo 移到了搜索栏内,整个顶部区域更紧凑了。显示更多卡片的设计被去除了,新添加的一组底部按钮指向备忘录、自定义选项,以及一个更多操作按钮,里面有设置、反馈,以及帮助。因为 Google Now 是主屏幕的一部分,所以它也拥有透明 的系统栏和状态栏。

透明以及让系统的特定部分“更明亮”是奇巧的设计主题。黑色调通过透明化从状态栏和系统栏移除了,文件夹的黑色背景也换为了白色。

新的,更加清爽的应用列表,以及完整的应用阵容。 [Ron Amadeo 供图]

奇巧的图标阵容相对 4.3 有显著的变化。更戏剧化地说,这是一场大屠杀,谷歌从 4.3 的配置中移除了七个图标。谷歌 Hangouts 现在能够处理短信,所以“信息”应用被去除了。Hangouts 同时还接手了 Google Messenger 的职责,所以它的图标也不见了。Google Currents 不再作为默认应用预装,因为它不久后就会被终结——和它一起的还有 Google Play Magazines(Play 杂志),取代它们的是 Google Play Newsstand(Play 报刊亭)。谷歌地图被打回一个图标,这意味着本地和导航的快捷方式被去掉了。难以理解的 Movie Studio 也被去除了——谷歌肯定已经意识到了没人想在手机上剪辑电影。有了主屏的“OK Google”关键词检测,语音搜索图标的呈现就显得多余了,因而将其移除。令人沮丧的是,没人用的新闻和天气应用还在。

有个新应用“Photos(相片)”——实际上是 Google+ 的一部分——接手了图片管理的工作。在 Nexus 5 上,相册和 Google+ 相片十分相似,但在 Google Play 版设备上更新版的奇巧中,相册已经完全被 Google+ 相片所取代。Play Games 是谷歌的后端多用户游戏服务——谷歌版的 Xbox Live 或苹果的 Game Center。Google Drive,已经在 Play 商店存在数年的应用,终于成为了内置应用。谷歌 2012 年 6 月收购的 Quickoffice 也进入了内置应用阵容。Drive 可以打开 Google 文档,Quickoffice 可以打开微软 Office 文档。如果细细追究起来,在大多数奇巧中包含了两个文档编辑应用和两个相片编辑应用。


Ron Amadeo / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。@RonAmadeo


via: http://arstechnica.com/gadgets/2016/10/building-android-a-40000-word-history-of-googles-mobile-os/25/

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

过于殷勤(敏捷)的侍者会让你美好的一餐糟糕无比。

然而,离开“敏捷”的“持续交付”餐馆,旁边还有“瀑布”餐吧。

嗷,这个快节奏的年代!

The Agile Restaurant

注: “敏捷” agile 开发、 “持续交付” Continuous Delivery (CD)和 “瀑布” waterfall 式开发都是软件开发术语。瀑布式开发/瀑布模型是一种传统的、过时的开发模式,其得名于开发阶段按顺序衔接,如瀑布般进行。敏捷和持续交付是近年来流行的开发模式,能够比较好的适应现代的软件开发需求,但是,显然,如果餐馆也采用这种模式,似乎不太对劲。


via: http://turnoff.us/geek/agile-restaurant/

作者:Daniel Stori 译者:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

已经使用了两年之久的代号为 “Jessie” 的 Debian GNU/Linux 8,终于被标记为 “oldstable”了。就在 18 日,Debian 项目宣布 Debian GNU/Linux 9,代号为 “Stretch” 的新版本正式发布!

这个 2017 年最重要的 GNU/Linux 发行版,Debian 9 进入了稳定状态,已经可以部署到生产环境中——接下来将会有一大批基于 Debian 的下游衍生版本正在赶来。

Debian 9 是一个主要发布版本,其对现代的硬件和 CPU 架构支持更好,使用了更新的核心组件和应用,此外还有一大堆其它的新功能,当然,稳定性和安全的改进更是重中之重,以及不可尽数的 bug 修复。

发布公告中称:“在经过 26 个月的开发之后,Debian 项目很自豪地推出了新的稳定版本 Debian 9(代号 ‘Stretch’),并在接下来的 5 年内由 Debian 安全团队和 Debian 长期支持团队进行支持。”

Debian GNU/Linux 9 “Stretch” 亮点

Debian 9 的亮点有:支持 64 位小端 MIPS 硬件架构(mips64el),而停止了对 PowerPC(powerpc)架构的支持;新的 deb.debian.org 镜像;可以以普通用户运行 X.Org 显示服务器,而不是以 root 用户。

此外,对 APT 和 aptitude 命令行软件包管理器做了重大改进,现在更容易获取和使用调试软件包, APT 源列表中增加了新的 “dbg-sym” 软件仓库,为许多软件包自动地提供了调试符号。Debian 9 中还带有首次发布的 Debian Astro Pure Blend。

Debian 9 中的大量软件包和核心组件进行了更新:

  • Linux 4.9 LTS 内核
  • GNOME 3.22
  • KDE Frameworks 5.28、KDE Plasma 5.8 和 KDE Applications 16.08
  • MATE 1.16
  • Xfce 4.12
  • Chromium 59.0.3071.86
  • Firefox 45.9
  • GIMP 2.8.18
  • Thunderbird 45.8
  • LibreOffice 5.2
  • Apache 2.4.25
  • Tomcat 8.5
  • GnuPG 2.1
  • MariaDB 10.1
  • PostgreSQL 9.6
  • GNU Compiler Collection 6.3
  • Perl 5.24
  • PHP 7.0
  • Golang 1.7
  • OpenJDK 8
  • Python 2.7.13 and 3.5.3
  • Ruby 2.3
  • Samba 4.5
  • systemd 232
  • Xen Hypervisor

Debian 9 官方支持 32 位(i386)、64 位(amd64)、64 位 ARM(arm64)等等硬件架构。

那些还在运行 Debian 8 “Jessie” 的计算机现在可以升级到 Debian 9 了。而要全新安装则可以从 debian.org 下载安装介质,当然,你也可以下载支持各种桌面环境的“现场版”。

介绍

当 LXD 2.0 随着 Ubuntu 16.04 一起发布时,LXD 联网就简单了。要么你可以使用 lxd init 来配置,为你的容器自己提供一个 “lxdbr0” 网桥,要么使用一个已存在的物理接口。

虽然这确实有效,但是有点混乱,因为大部分的桥接配置发生在 Ubuntu 打包的 LXD 之外。那些脚本只能支持一个桥接,并且没有通过 API 暴露,这使得远程配置有点痛苦。

直到 LXD 2.3,LXD 终于发展了自己的网络管理 API ,并有相应的命令行工具。这篇文章试图来简述这些新的功能。

基础联网

在初始情况下,LXD 2.3 没有定义任何网络。lxd init 会为你设置一个,并且默认情况下将所有新的容器连接到它,但是让我们亲手尝试看下究竟发生了些什么。

要创建一个新的带有随机 IPv4 和 IP6 子网,并启用 NAT 的网络,只需要运行:

stgraber@castiana:~$ lxc network create testbr0
Network testbr0 created

你可以如下查看它的配置:

stgraber@castiana:~$ lxc network show testbr0
name: testbr0
config:
 ipv4.address: 10.150.19.1/24
 ipv4.nat: "true"
 ipv6.address: fd42:474b:622d:259d::1/64
 ipv6.nat: "true"
managed: true
type: bridge
usedby: []

如果你不想要那些自动配置的子网,你可以这么做:

stgraber@castiana:~$ lxc network create testbr0 ipv6.address=none ipv4.address=10.0.3.1/24 ipv4.nat=true
Network testbr0 created

那就会这样:

stgraber@castiana:~$ lxc network show testbr0
name: testbr0
config:
 ipv4.address: 10.0.3.1/24
 ipv4.nat: "true"
 ipv6.address: none
managed: true
type: bridge
usedby: []

如果你的容器没有使用它,那么创建的网络对你也没什么用。要将你新创建的网络连接到所有容器,你可以这么做:

stgraber@castiana:~$ lxc network attach-profile testbr0 default eth0

要将一个网络连接到一个已存在的容器中,你可以这么做:

stgraber@castiana:~$ lxc network attach my-container default eth0

现在,假设你已经在机器中安装了 openvswitch,并且要将这个网桥转换成 OVS 网桥,只需更改为正确的驱动:

stgraber@castiana:~$ lxc network set testbr0 bridge.driver openvswitch

如果你想要一次性做一系列修改。lxc network edit 可以让你在编辑器中交互编辑网络配置。

静态租约及端口安全

使用 LXD 管理 DHCP 服务器的一个好处是可以使得管理 DHCP 租约很简单。你所需要的是一个容器特定的网卡设备以及正确的属性设置。

root@yak:~# lxc init ubuntu:16.04 c1
Creating c1
root@yak:~# lxc network attach testbr0 c1 eth0
root@yak:~# lxc config device set c1 eth0 ipv4.address 10.0.3.123
root@yak:~# lxc start c1
root@yak:~# lxc list c1
+------+---------+-------------------+------+------------+-----------+
| NAME |  STATE  |        IPV4       | IPV6 |    TYPE    | SNAPSHOTS |
+------+---------+-------------------+------+------------+-----------+
|  c1  | RUNNING | 10.0.3.123 (eth0) |      | PERSISTENT | 0         |
+------+---------+-------------------+------+------------+-----------+

IPv6 也是相同的方法,但是换成 ipv6.address 属性。

相似地,如果你想要阻止你的容器更改它的 MAC 地址或者为其他 MAC 地址转发流量(比如嵌套),你可以用下面的命令启用端口安全:

root@yak:~# lxc config device set c1 eth0 security.mac_filtering true

DNS

LXD 在网桥上运行 DNS 服务器。除了设置网桥的 DNS 域( dns.domain 网络属性)之外,还支持 3 种不同的操作模式(dns.mode):

  • managed :每个容器都会有一条 DNS 记录,匹配它的名字以及已知的 IP 地址。容器无法通过 DHCP 改变这条记录。
  • dynamic :允许容器通过 DHCP 在 DNS 中自行注册。因此,在 DHCP 协商期间容器发送的任何主机名最终都出现在 DNS 中。
  • none : 针对那些没有任何本地 DNS 记录的递归 DNS 服务器。

默认的模式是 managed,并且典型的是最安全以及最方便的,因为它为容器提供了 DNS 记录,但是不允许它们通过 DHCP 发送虚假主机名嗅探其他的记录。

使用隧道

除了这些,LXD 还支持使用 GRE 或者 VXLAN 隧道连接到其他主机。

LXD 网络可以连接任何数量的隧道,从而轻松地创建跨多个主机的网络。这对于开发、测试和演示非常有用,生产环境通常更喜欢使用 VLAN 进行分割。

所以说,你想在主机 “edfu” 上有一个运行 IPv4 和 IPv6 的基础 “testbr0” 网络,并希望在主机 “djanet” 上使用它来生成容器。最简单的方法是使用组播 VXLAN 隧道。这种类型的隧道仅在两个主机位于同一物理段上时才起作用。

root@edfu:~# lxc network create testbr0 tunnel.lan.protocol=vxlan
Network testbr0 created
root@edfu:~# lxc network attach-profile testbr0 default eth0

它在主机 “edfu” 上定义了一个 “testbr0” 桥接,并为其他主机能加入它设置了一个组播 VXLAN。在这个设置中,“edfu” 为这个网络扮演了一个路由器角色,提供 DHCP、DNS 等等,其他主机只是通过隧道转发流量。

root@djanet:~# lxc network create testbr0 ipv4.address=none ipv6.address=none tunnel.lan.protocol=vxlan
Network testbr0 created
root@djanet:~# lxc network attach-profile testbr0 default eth0

现在你可以在任何一台主机上启动容器,并看到它们从同一个地址池中获取 IP,通过隧道直接互相通讯。

如先前所述,这个使用了组播,它通常在跨越路由器时无法很好工作。在这些情况下,你可以用单播模式使用 VXLAN 或者 GRE 隧道。

要使用 GRE 加入另一台主机,首先配置服务主机:

root@edfu:~# lxc network set testbr0 tunnel.nuturo.protocol gre
root@edfu:~# lxc network set testbr0 tunnel.nuturo.local 172.17.16.2
root@edfu:~# lxc network set testbr0 tunnel.nuturo.remote 172.17.16.9

接着是“客户端”主机:

root@nuturo:~# lxc network create testbr0 ipv4.address=none ipv6.address=none tunnel.edfu.protocol=gre tunnel.edfu.local=172.17.16.9 tunnel.edfu.remote=172.17.16.2
Network testbr0 created
root@nuturo:~# lxc network attach-profile testbr0 default eth0

如果你像使用 VXLAN,只要这么做:

root@edfu:~# lxc network set testbr0 tunnel.edfu.id 10
root@edfu:~# lxc network set testbr0 tunnel.edfu.protocol vxlan

还有:

root@nuturo:~# lxc network set testbr0 tunnel.edfu.id 10
root@nuturo:~# lxc network set testbr0 tunnel.edfu.protocol vxlan

这里需要隧道 id 以防与已经配置的多播 VXLAN 隧道冲突。

这就是如何使用最近的 LXD 简化跨主机联网了!

总结

LXD 使得从简单的单主机网络到数千个容器的非常复杂的跨主机网络的定义变得更加容易。它也使为一些容器定义一个新网络或者给容器添加第二个设备,并连接到隔离的私有网络变得很简单。

虽然这篇文章介绍了支持的大部分功能,但仍有一些可以微调 LXD 网络体验的窍门。可以在这里找到完整的列表:https://github.com/lxc/lxd/blob/master/doc/configuration.md

额外信息


via: https://www.stgraber.org/2016/10/27/network-management-with-lxd-2-3/

作者:Stéphane Graber 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出