摘要:该公司刚刚宣布了一个计划,意在取代现有的发行版。这甚至可能帮找到一个新方向。为了解决这个问题,我们在上增加了一个名为的新功能。总体而言,整个过程呈现如下建立包括,以及一个的基础架构。
这是 TCP CLOUD 联合创始人 & 前 CTO Jakub Pavlik 于 2017 年 7 月 9 日发布于 www.mirantis.com 的文章。本文主要介绍了 Virtlet 及其未来与 Kubernetes 相结合的一些想法。感谢文森特翻译和才云 CTO 邓德源校对。
不久前,我和一位潜在客户(非通信行业)开了一次会。该公司刚刚宣布了一个计划,意在取代现有的 OpenStack 发行版。当我们开始讨论在 Stackalytics 中找到 OpenStack 的最大贡献者时,我们发现了问题的根本,并意识到他们并不需要从最大供应商那边找到 OpenStack 发行版。
他们需要在大规模生产中运行单个应用负载。
换句话说,他们不需要多租户,自管理服务,Murano,Trove 等功能或项目。客户甚至都不想使用 OpenStack,因为通过 OpenStack 来通过不可变虚拟机镜像发布应用的方式太过复杂。
另一方面,使用 Kubernetes 来代替 OpenStack 也不是正确的方式,因为它们的应用还不能微服务化,就算要做,也至少需要 6 个月的时间来重写,重新测试和验证所有的工具。
当时我意识到在 Kubernetes 中使用标准虚拟机,并与 OpenStack SDN 相结合会有多么强大。通过这两个平台的优势,我们可以想象如何简化控制平面堆栈,去适用于诸如边缘计算,视频流等功能;这些功能目前都是以虚拟机的方式部署。这甚至可能帮 NFV 找到一个新方向。
什么是 Virtlet?
正如我上一篇博客所说,之前的真实例子证实了我们的客户暂时还没准备好进入真实的微服务世界。为了解决这个问题,我们在 Mirantis Cloud Platform 上增加了一个名为 Virtlet 的新功能。Virtlet 是 Kubernetes 一个运行时服务,能够根据 QCOW2 映像运行 VM 工作负载。
Virtlet 是 Mirantis K8S 的伙伴们在一年前启动的项目,第一个版本通过 Flannel 实现。换句话说,Virtlet 是一个 Kubernetes CRI (Container Runtime Interface) 的实现,能够在 Kubernetes 集群上运行基于虚拟机的 Pods。(CRI 能够令 Kubernetes 运行非 Docker 的容器,例如 Rkt)
为了简化部署,Virtlet 本身作为 DaemonSet 运行,充当管理程序使 CRI 代理服务器可用于运行虚拟机,实现 Docker 和非 Docker pods 在同一个节点上运行。
下图展示了 Virtlet 的结构:
Virtlet 包含了下列的组成部分:
Virtlet manager:实现虚拟化和镜像处理的 CRI 接口
Libvirt:标准 libvirt 库
Vmwrapper:为模拟器准备环境
Emulator:qemu 结合 KVM 实现的模拟器(可以禁用 KVM 嵌套虚拟化测试)
CRI proxy:提供在同一 K8S node 上混合部署 docker-shim 和基于 VM 的工作负载
你可以在 github docs(https://github.com/Mirantis/v...)上找到更多详细信息,但在最新的发布中,Virtlet 支持以下功能:
Volumes:Virtlet 使用自定义的 FlexVolume (virtlet/flexvolume_driver) (https://github.com/kubernetes...)驱动来指定虚拟机的块设备,它支持:
qcow2 ephemeral volumes
raw devices
Ceph RBD
files stored in secrets or config maps
环境变量:你可以为你的 pods 定义环境变量,当虚拟机启动时,virtlet 使用 cloud-init 将这些值写入 / etc / cloud / environment 文件。
演示 Lab 架构
为了演示所有的功能是如何运转,我们创建了一个 lab 包含了:
3 个运行在 HA 模式中的 OpenContainer 3.1.1.x 的控制器
3 个 Kubernetes master 或 minion nodes
2 个 Kubernetes minion nodes
Kubernetes 采用 1.6 版本,使用 OpenContrail Container Network Interface (CNI) 。为了演示 Virtlet 的功能,我们同时部署基于 Ubuntu VM 的 Pod 以及基于标准容器环境的 Nginx Pod。
最终,我们在同一个 Kubernetes 集群上运行容器和虚拟机,并运行在同一个 OpenContrail 虚拟网络上。
总体而言,整个过程呈现如下:
建立包括 k8s masters, minions 以及一个 OpenContrail controllers 的基础架构。运行 Virtlet DaemonSet 的节点有特定的标签。我们使用了extraRuntime = virtlet。(之后我们会需要)
为虚拟机创建一个 pod,在 nodeAffinity 参数中指定 extraRuntime 键,以便其在具有 Virtlet DaemonSet 的节点上运行
完成,没有第三步了。
结论
所以我们现在已经有了基本认知,我们对于如何在未来做有关 Virtlet 和 OpenContrail Kubernetes 的集成有了几个大致的想法,例如:
在 Kubernetes 中对虚拟机进行性能验证,例如将 OpenStack 上的容器化虚拟机与标准虚拟机进行比较
支持基于 iSCSI 磁盘储存
启用 OpenContrail vRouter DPDK 和 SR-IOV,扩展 OpenContrail CNI,使其可以创建先进的 NFV 集成
Virtlet 的 CPU pinning 和 NUMA
优化资源处理,例如内存的硬限制和 qemu 线程的限制
Callico 技术支持
正如你所看到的,Mirantis 正在专注于解决实际问题,并将这些解决方案推回到社区,而不是随机的贡献代码。我也想要特别感谢 Ivan Shvedunov,Dmitry Shulyak 及所有 Mirantis Kubernetes 团队,他们在这次整合中出色地完成了工作。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/32563.html
摘要:云计算的光明前景是无需多言的,对于通信运营商需要以更开放的心态和更优质的技术与互联网公司竞争,设备商入局有点难,希望大家加油能在云计算上成功。回顾2012年,整个通信业都在期待这4G浪潮的来临,在和公司大拿的一个饭局上,第一次听到这样的观点:整个通信原本是朝阳产业,利润丰厚,随着华为、中兴的入场参与,以超低价格迅猛拓展市场,很快达到饱和,潜在的危机感逼着大家寻找下一代技术,从1G到2G用了2...
摘要:运营商网络大致可划分为四朵云公有云平台云云网络云。网络即云,云网一体化将成为未来运营商网络的最显着特征。 5月25日消息互联网+是要让信息技术、网络技术深度融合于经济社会各领域之中,使互联网下沉为各行各业都能调用的基础设施资源。预计到2025年,全球将有65亿互联网用户,使用80亿个智能手机,创建1000亿个连接,产生176ZB的数据流量,全面实现泛在的连接。在未来,网络需要满足海量终端的接...
摘要:移动通信以语音为中心,基于模拟和蜂窝技术。其功能非常有限,仅能服务于军事政府机构和名人等市场。代表产品就是大哥大,只具有基本的语音功能。重点是增加数据和语音容量并提高整体体验质量。 了解5G和5G未来将面临的困难和挑战 移动通讯发展历程 5G关键技术 5G技术指标 5G应用场景 5G关键技术...
摘要:请解释开源如何帮助。开源允许你有效快速地适应这些变化和影响。这可以追溯到生态系统,它类似于我们在的合作伙伴计划,是填补空白的胶水,完善给电信公司设想的网络解决方案。 作者:Pam Baker showImg(https://segmentfault.com/img/bVbqsgx?w=800&h=415);迎接即将举行的ONS(开放网络峰会),我们与Red Hat的NFV技术总监Tho...
阅读 1057·2021-11-19 09:40
阅读 940·2021-11-12 10:36
阅读 1191·2021-09-22 16:04
阅读 3084·2021-09-09 11:39
阅读 1234·2019-08-30 10:51
阅读 1865·2019-08-30 10:48
阅读 1192·2019-08-29 16:30
阅读 442·2019-08-29 12:37