博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes的未来是虚拟机,而不是容器?
阅读量:6966 次
发布时间:2019-06-27

本文共 3465 字,大约阅读时间需要 11 分钟。

摘要

在中国的生肖中,2018年是“狗年”,在科技领域则是“Kubernetes年”。现在,有很多人才开始了解Kubernetes。世界各地的首席信息官都在努力制定“Kubernetes战略”。一些组织已经在Kubernetes上运行了大量的生产工作负载。

正文

本文最初发布于Paul的博客,经原作者授权由InfoQ中文站翻译并分享。

概述

作为一项技术,Kubernetes今年对我的职业生涯非常重要,明年更是如此。在2018年即将结束之际,我们应该摒弃傲慢,做出大胆的预测。Kubernetes的未来是虚拟机,而不是容器。

Kubernetes的未来是虚拟机,而不是容器。

在中国的生肖中,2018年是“狗年”,在科技领域则是“Kubernetes年”。现在,有很多人才开始了解Kubernetes。世界各地的首席信息官都在努力制定“Kubernetes战略”。一些组织已经在Kubernetes上运行了大量的生产工作负载。

换句话说,对于Kubernetes来说,Gartner 炒作周期的每个阶段都有很多人。许多人被困在幻灭的低谷,或者被淹没在绝望的深渊。

\"图片\"

来自,由Jeremykemp提供(*)** *

我是容器的超级粉丝,我不会试图说明。在2013年,Docker带给我们的是一个围绕Linux容器的封装器。它们向我们展示了构建、打包、共享和部署应用程序的新方法。来得正是时候,因为我们已经开始认真对待持续交付。它们的模型非常适合现代化交付管道和PaaS以及后来的CaaS平台。

\"图片\"
根据谷歌工程师的观察,技术社区终于为容器做好了准备。谷歌已经使用(或多或少发明)容器很长时间了。他们开始构建Kubernetes,我们现在都知道,这是谷歌对自己的Borg平台的重构,该平台的构建是作为一项社区工作以开放的形式开展的。

不久,大型公有云就提供了一个基于Kubernetes的平台(GKE、AKS、EKS)。本地部署人员也很快地构建了基于Kubernetes的平台(Pivotal Container Service、Openshift等)。

软性多租户

还有一个棘手的问题需要解决,我认为这将证明容器的衰落……多租户。

Linux容器的构建并不是为了成为安全的隔离沙箱(如Solaris Zones或FreeBSD Jails)。相反,它们构建在一个共享的内核模型上,该模型利用内核特性提供基本的进程隔离。正如所言,“容器不是一个真实的东西”。

更复杂的是,大多数Kubernetes组件不知道租户的存在。当然,你有和,但是API本身没有。 像kubelet或kube-proxy这样的内部组件也没有。这导致了Kubernetes 的“软性租户(Soft Tenancy)”模型。

\"图片\"
抽象泄漏。构建在容器之上的平台将继承容器软性租户的许多方面。构建在刚性多租户虚拟机之上的平台都继承了刚性租户(VMware、Amazon Web Services、OpenStack等)。

Kubesprawl统治了我周围的一切

Kubernetes的软性租户模型将服务提供和分发置于一个奇怪的位置。Kubernetes集群本身成了“刚性租户”。有许多原因(甚至在同一个组织内部)要求在用户(或应用程序)之间实现刚性租户。由于公有云提供了全托管的Kubernetes服务,所以每个租户都很容易获得自己的集群并使用集群边界作为隔离点。

像这样的一些Kubernetes发行版非常清楚这个,它们采用了类似的模型,提供了与你从公有云中获得的服务体验相同的Kubernetes,但是是在你自己的数据中心里。

这导致“多集群”模式的出现,而不是“一个大型共享集群”的模式。谷歌GKE服务的客户为多个团队部署了几十个Kubernetes集群,这种情况并不少见。通常,每个开发人员都有自己的集群。这种行为导致了数量惊人的Kubesprawl。

或者,在自己的数据中心里运行自己的Kubernetes集群(上游或基于分布式的)的Kubernetes运营商可以自行承担管理大量集群的额外工作,或者只在一两个比较大的集群上接受软性租户。

“这种行为导致了数量惊人的Kubesprawl。”

通常,最小的集群包含4台机器(或VM),一台(或者3个,为实现HA)作为Kubernetes主节点,三个作为Kubernetes工作节点。在大多数部分都空闲的系统中,这就占用了大量的资金。

所以,我们需要以某种方式将Kubernetes转移到一个刚性租户模型。Kubernetes社区非常了解这种需要,并有一个。这个小组正在努力解决这个问题,他们就如何处理每个模型提出了几个建议模型和提案。

Jessie Frazelle就这个话题写了一篇,很棒的一篇文章,因为她比我聪明得多,所以我可以让你和她取得联系,这样我就不用花十年的时间努力学习来赶上她了。如果你还没有读过,就不要往下读了,先去读那篇文章吧。

优化小型VM的速度

Kata容器是一个开源项目和社区,致力于构建轻量级虚拟机(VM)的标准实现,这些虚拟机看起来和执行起来都像容器,但提供了VM的工作负载隔离和安全优势。

Jessie建议使用VM容器技术,比如。Kata容器兼有虚拟机级别的隔离,表现和执行都跟容器类似。这使得Kubernetes可以为每个租户(假设每个名称空间有一个租户)提供一组在嵌套VM容器中运行的Kubernetes系统服务(VM容器在底层IaaS提供的VM中运行)。

\"图片\"
图片来自*

这是一个优雅的Kubernetes多租户解决方案。她甚至进一步建议Kubernetes把嵌套容器VM用于运行在Kubernetes上的工作负载(Pod),这样可以显著提高资源利用率。

这里至少还可以做一项优化。为底层IaaS或云提供商构建合适的虚拟机管理程序。如果VM容器是IaaS提供的第一级抽象,那么我们就可以进一步提高资源利用率。运行Kubernetes集群所需的最少VM数量下降到一个(或三个,为实现HA),用于承载提供给“超级用户”的Kubernetes控制平面。

资源(成本)优化的多租户
下图是一个具有两个称空间的Kubernetes部署,每个部署运行多个应用程序。
\"图片\"

注意:还有其他云租户工作负载运行在相同的IaaS基础设施上。因为这些是VM容器,所以它们具有与常规云VM相同的隔离级别。因此,它们就可以以最小的风险在同一个虚拟机管理程序上运行。

最初部署到云上的基础设施为零,因此超级用户的成本为零。

超级用户从云请求一个Kubernetes集群。云提供商创建一个单独的容器VM(或三个,为实现HA),它运行主要的Kubernetes API和系统服务。超级用户可以选择在系统名称空间中部署Pod,或者创建新的名称空间以便把访问委托给其他用户。

超级用户创建两个名称空间foo和bar。Kubernetes从云中为每个名称空间的控制平面(Kubernetes API和系统服务)申请两个VM容器。超级用户将对这些名称空间的访问委托给一些用户,这些用户各自部署一些工作负载(Pod),他们各自的控制平面为每个工作负载请求VM容器。

在所有阶段,超级用户只为实际消耗的资源付费。云提供商拥有任何云用户都可以使用的生产力。

我并没有说什么新东西

云提供商已经在朝着这个向努力了。通过观察开源社区中正在发生的事情,你就可以看到这个形成过程。(可以说,亚马逊已经在用Fargate做这件事了)。

第一个线索是,这是一个开源工具,被伪装成了Kubelet。它将Kubernetes与其他API连接起来。这将使得Kubernetes可以从云的容器VM调度器请求容器VM。

其他线索包括新兴VM容器技术的数量,已经提到的,还有来自亚马逊的和来自谷歌的。

小结

结合对Kubernetes刚性租户模型的恰当改进,你将得到Kubernetes的圣杯。完全隔离Kubernetes工作负载和在Kubernetes上运行工作负载时纯粹按Pod计算的消费成本模型。

对于那些不在公有云上的人,我们没有相同的消费模型,因为生产力职责在基础设施提供商(在这种情况下是你自己)那里。你仍然可以获得更高的资源利用率所带来的好处,从较低的生产力需求中得到回报。

我们希望VMware和OpenStack能够注意到这一点,并为我们带来基于虚拟机管理程序的轻量级VM容器技术和适当的Virtual Kubelet实现。

查看英文原文:

转载地址:http://lqwsl.baihongyu.com/

你可能感兴趣的文章
LCUI 1.1.0 Beta 发布,C 的图形界面库
查看>>
recyclerView 遇到IndexOutOfBoundsException 及解决
查看>>
微信支付教程系列之现金红包
查看>>
mybatis中resultMap与resultType的使用说明
查看>>
Base64
查看>>
3、MySQL的数据类型介绍
查看>>
ubuntu apache2配置详解
查看>>
MariaDB(mysql)之半同步复制及复制过滤器的使用
查看>>
WCF Ria Service 理解制图版本【待续】
查看>>
【IOS】高仿糗事百科客户端(基本实现了除注册,评论之外的功能)
查看>>
puppet之模块详解
查看>>
shell脚本
查看>>
python 模块
查看>>
完整安装模式下配置windows server 2008[为企业部署Windows Server 2008系列二]
查看>>
paramiko 堡垒机
查看>>
Git 概述
查看>>
Flash Builder生成asdoc格式的帮助文档
查看>>
分享实录 | 第四范式程晓澄:机器学习在推荐系统中的应用
查看>>
测试服务器响应时间
查看>>
Windows Server 2003的安装
查看>>