「如何实现流动式软件发布」线上课堂开课啦,快来报名参与课堂抽奖吧~ 了解详情
写点什么

Kubernetes 的未来:虚拟机?容器?还是 Hypervisor?

2019 年 5 月 29 日

Kubernetes的未来:虚拟机?容器?还是Hypervisor?

Kubernetes 未来将走向何方?Pivotal 的首席技术专家Paul Czarkowski预测虚拟机(VM)将取代容器;红帽的副总裁Joe Fernandes认为虚拟机只是在帮助Kubernetes进化,而不会取代容器。此外,红帽的高级产品营销经理Chris Short表示,Kubernetes很快就会取代虚拟机管理器(Hypervisor)


Czarkowski 表示,虽然容器改进了软件的构建和部署方式,它们也不像虚拟机那样是安全的隔离沙箱。此外,容器是基于共享内核模型构建的,仅提供基本的进程隔离。Kubernetes 中的大多数组件都不是租户感知(tenant aware)的,所以采用的是软租户模型,其中只有命名空间pod安全策略级别是隔离的,但 API 却是共享组件:


这种情况导致了“多集群”模式的兴起,取代了“单个共享的大集群”。经常能见到谷歌 GKE 服务的客户为多支团队部署好几十个 Kubernetes 集群。通常每位开发者都有自己的集群。这种习惯导致集群数量快速增长到令人震惊的程度,足以称作“Kuber 泛滥”了。


为了解决 Kuber 泛滥问题,Czarkowski 提议使用像Kata Containers这样的微型虚拟机——它是一个“开源项目和社区,致力于构建轻量级虚拟机的标准实现,其形态和工作方式和容器很像,但提供了虚拟机具备的负载隔离和安全性优势“。他的提议不是使用许多Kubernetes控制面板,而是使用 Kata Containers 为每个租户提供一个隔离的环境(包括 Kubernetes API),其中嵌套的 VM 容器在来自 AWS、Azure、GCP 或 vSphere 的虚拟机中运行。这种部署如下图所示:



资料来源:Paul Czarkowski 撰写的“Kubernetes的未来就是虚拟机


在上图中已经部署了两个 Kubernetes 命名空间,分别是 foo bar。每个命名空间都有自己的 API、系统服务和 pod。这样通过嵌套的虚拟机来支持多租户集群就能减少 Kuber 泛滥现象,并且这种底层基础架构可用于在同一虚拟机中托管非容器工作负载。


另外,Short 说“使用 Kubernetes 作为虚拟机管理器的想法很快就会变为现实了”,使用像KubeVirt和 Kata Containers 等工具帮助组织迁移无法容器化的老旧负载。KubeVirt 是虚拟机管理的附加组件,可在 Kubernetes 之上提供虚拟化解决方案。KubeVirt 允许无法轻易容器化的老旧应用使用 Kubernetes 的内置功能,如自我修复、自动滚动升级(和回滚)、水平扩容等。Short 说:


这意味着虚拟机只要少量调整就能容器化了。根据现有的一些计划,Kubernetes 将作为虚拟机管理器开始改变数据中心和云计算环境。


也就是说 Czarkowski 和 Short 的想法是互补的。Czarkowski 认为 Kubernetes 未来将成为融合新兴技术的虚拟机,就像来自 AWS 的Firecracker和来自 Google 的gVisor那样;而 Short 认为虚拟机的未来就是 Kubernetes,组织会使用像 KubeVirt 这样的工具将原有的应用迁移到 Kubernetes 上。


Fernandes 表示,未来的关键不是容器将取代虚拟机,而是如何使用 Kubernetes 来协调不同的负载,如传统的基于虚拟机的负载或是微型虚拟机等。Kubernetes 将帮助组织现代化其负载,并为容器、虚拟机甚至裸机基础架构提供混合操作。还会有组织继续在裸机基础架构中运行负载,以通过硬件加速技术满足性能需求。或者也有公司像 Short 所说的那样,希望通过虚拟机、微型虚拟机或借助 KubeVirt 和 Kata Containers 等工具来迁移并进化现有的负载。


所以 Fernandes 认为虚拟机不会取代容器。相反,Kubernetes 堆栈中虚拟机会不断进化。2019 年的趋势是 Kubernetes 与虚拟化开始相交,此外还兴起了更开放的新思维模式:Kubernetes 将开始使用容器和虚拟机来运行混合负载。


Fernandes 在帖子最后补充了 Short 和 Czarkowski 的观点,他说 Kubernetes 的三大关键趋势将是:


  1. Kubernetes 编排微虚拟机,为不受信任的负载提供更严格的多租户隔离。

  2. Kubernetes 编排和管理传统的基于虚拟机的负载(通过 KubeVirt)以及基于容器的负载。

  3. Kubernetes 集群越来越多地部署在裸机服务器上,作为基于虚拟机环境的 Kubernetes 的替代品。


你如何看待 Kubernetes 的未来?


查看英文原文Kubernetes Future: VMs, Containers, or Hypervisor?


2019 年 5 月 29 日 08:0012103

评论

发布
暂无评论
发现更多内容

最好的汇报是不需要汇报

伯薇

团队管理 领导力 沟通 汇报 可视化

不安全的“安全密码”

沈传宁

信息安全 口令安全

[MySQL-InnoDB] Buffer pool 并发控制

ba0tiao

MySQL 数据库 innodb

去中心化网络,不止区块链(一)

石君

区块链 去中心 去中心化网络 DHT

DIY 可用性测试

Yanel 说敏捷产品

产品 产品经理 产品设计 测试 产品推荐

你必须了解的产品经济学

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

Panzoid:一款超好用的片头制作工具

千锤百炼锅

学习 产品 效率工具 工具 产品推荐

流量的战场,如何做裂变?

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

如何度量敏捷开发团队

Yanel 说敏捷产品

敏捷 敏捷开发

在 TypeScript 处理空值异常

寇云

typescript 前端开发

一杯茶的时间,上手 Docker

图雀社区

node.js react.js Docker

写文章的目的是什么?

小天同学

思考 写作 感悟 表达

吾谈教育

ItsFitz

一个英语渣的自救手册

寇云

学习 效率工具 程序员人生 工作效率

创新真的可遇不可求么?

Yanel 说敏捷产品

产品经理 产品设计 产品开发 产品推荐

"深刻创新"八步法

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

回"疫"录(9):守住我们自己的净土

小天同学

疫情 回忆录 现实纪录 纪实

Netty 源码解析(七): NioEventLoop 工作流程

猿灯塔

变化在加速,你的机会和挑战在哪里?

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

测试驱动开发英制单位转换

escray

学习 CSD 认证实战营

你懂什么是"结对测试"么?

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

我为什么不买Mac

Winann

效率 效率工具 Mac apple

道德和正确的认知

沈传宁

信息安全 计算机道德

系统的安全性设计

Janenesome

读书笔记 程序员 架构 安全

人生需要做减法:少即是多

我心依然

程序员 人生 减法 少即是多 less is more

JAVA小抄-001-Retrofit初级使用

NoNoGirl

retrofit okhttp

谨防常见的一些数据误区

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

粗糙的草稿编辑成文章的五个步骤

董一凡

写作

Java并发编程基础--Synchronized

Java收录阁

线程

权限系统设计的一种解法

kos

产品 总结 产品设计

《通往财富自由之路》——day1

轩呀

得到

Kubernetes的未来:虚拟机?容器?还是Hypervisor?-InfoQ