OpenStack v.s. Kubernetes
目录
What are the differences with OpenStack and Kubernetes?
OpenStack | Kubernetes | |
---|---|---|
虚拟化技术 | 计算机虚拟化 | 操作系统虚拟化 |
运算单元 | Virtual Machine | Container |
云存储服务 | 块存储、对象存储、文件存储 | 块存储 |
多租户隔离 | 多租户 | 单租户 |
安全隔离性 | 好 | 差 |
裸机管理 | 支持 | 不支持 |
微服务支撑 | 不支持 | 原生支持 |
弹性伸缩维度 | 主机 | Pod |
应用编排能力 | 弱 | 强 |
业务创新能力 | 低 | 高 |
平台运维难度 | 大 | 小 |
Why OpenStack & Kubernetes?
OpenStack 采用的是计算机虚拟化技术,即 VMM Hypervisor,能够提供完整而独立的虚拟机,每个虚拟机都拥有独立的内核,隔离好、安全高。而 Kubernetes 采用的是操作系统虚拟化技术,提供了极其轻量的应用程序运行环境,即 Container,拥有轻量、敏捷、可移植的优势。如果将虚拟化技术实现比作云计算的基因,那么 OpenStack 和 Kubernetes 天生就注定了会走向两个不同的世界,即 IaaS 和 PaaS。在此,笔者希望提醒一下,这个世界并非先有了 OpenStack 再有 IaaS,而是有了 IaaS 之后才有 OpenStack。Kubernetes 亦然。之所以提出这一点是因为,这恰恰说明了 OpenStack 也可以是 PaaS,Kubernetes 亦然。这是两个社区之间必然存在竞争关系的原罪。
值得一提的是,容器虽然拥有 Namespace 的概念,但是更多是限制资源的使用,容器间共享内核,并不是真正意义的多租户。所以在对安全性要求高的应用领域,例如:金融、电信行业,容器技术一直备受挑战。通常的做法是,可以考虑在 Hardware 和容器之间通过增加一层虚拟机来弥补,但 Container on VM 的模式必然存在性能的损耗。所以 OpenStack 基金会一直在大力推动 Kata Containers 的发展,愿望可以在减少虚拟化开销的同时,兼顾容器的性能和隔离性。随着 Kata 的成熟,为容器安全解决方案提供了新的思路。而笔者认为 Kata 更重要的意义在于,它或许,甚至已经成为了促进 OpenStack Foundation 和 CNCF 达成协作的桥梁。这对两个社区未来的发展方向至关重要,OpenStack Summit 向 Open Infrastructure Summit 的蜕变就是一个非常美好的转向。这势必会回避很多 OpenStack 和 Kubernetes 正面碰撞的竞争,更倾向于互补互足,持续发展各自领域的优势。对此,请恕笔者再多说一句闲话,聊技术可以,但请大家不要再讨论 OpenStack 和 Kubernetes 谁生谁死的问题了,实在过于业余。
回到正题,还需要强调的一点是,安全隔离这一问题的范畴可不仅限于计算资源,还要考虑到网络和账户运营的层面。对于后者,在大规模集群或庞大的企业组织结构应用场景中,Kubernetes 可以考虑使用 OpenStack Keystone 完备的权限系统来进行补充。每个 OpenStack Tenant 独立维护自身的 Kubernetes 集群。例如:R&D Tenant、Business Tenant。
而在网络层面,虽然 Kubernetes 提出了很多网络的概念,例如:CNI、Service、DNS、Ingress、Network Policy。但必须承认 Kubernetes 的网络并不贴近传统数据中心的网络基础设施,方案也缺乏灵活,以至于经常受到来自网络基础设施部门的挑战。在他们眼里,网络基础设施平台应该具有 Subnet、 Floating IP 以及在此之上有 DHCP、路由控制、安全组、QoS、负载均衡、域名解析、VPC 等基础网络功能,以至于在此之上构建多租户隔离、多类型网络共存、可伸展性 SDN 网络的愿望。虽然 Kubernetes 的 Calico 网络也可以解决多租户网络隔离的问题,但与数据中心网络发展规划的目标依旧存在距离。这或许就是技术需求和 “真用户核心需求” 的距离。当然,我相信未来随着容器的密度越来越大,必然会出现专门针对容器架构进行优化的网络方案,而不再单存依赖 Linux 网络堆栈的支撑。但就当下而言,Kubernetes 依托于 OpenStack Neutron + Kuryr 来整合两者的网络仍不失为一个好的选择,即解决了嵌套 Overlay 网络的问题,还能够实现容器和容器之间、容器和虚拟器之间的网络直通。
在存储需求的层面,OpenStack 除了提供云主机之外,还可以提供多种类型的云存储服务,例如:块存储、对象存储和文件存储。对此 Kubernetes 则有着完全不同的思考。对于 Kubernetes 而言重要的不是能提供何种存储服务,而是怎么简易的利用好存储资源,继而更好的支撑上层的应用编排。这一点与 Kubernetes 对网络的态度如出一辙,它始终围绕要上层业务思考,而非 IT 资源。单凭 Kubernetes 难以满足企业对云存储服务和网络服务需求的需求。
有失必有得,Kubernetes 自始至终给到笔者的感觉都是一个懂得取舍的智者。Kubernetes 的核心价值始终明确 —— 推动企业的业务创新。未来的业务都会运行在云上,而容器是走向 DevOps、Cloud Native 的标准工具,微服务架构是走向大流量时代的标准软件设计思路。容器改变了应用程序交付的方式,微服务架构改变了应用程序的开发形态。而 Kubernetes 的编排能力以及微服务框架能力,让容器和微服务架构能够落地到业务应用中,加速企业业务创新,快速适应云时代的发展与竞争。这一点是 Kubernetes 之于 OpenStack 而言难以企及的优势,由基因就已经决定了。
退一步回来说,Kubernetes 的优势还是要依托于高可靠的云基础设施的可用性之上。Kubernetes 面向应用层,变革的是业务架构,而 OpenStack 面向资源层,提供了抽象化和自动化的 IT 基础设施,改变的是资源供给模式,是上层平台的强力支撑。在使用容器且集群规模不大的场景中,直接用 Kubenetes 当然可以,但在大规模的集群场景中,不管应用是否只是单存的跑在容器中,都是 OpenStack & Kubernetes 更好。就更不用说当下百花齐放的 5G 时代了。AI、MEC、IoT 将会掀起新的时代潮流,领先的私有云不再仅是虚拟机、容器或裸机,而是我全都要,我又全都可以不要。支持、管理和协调这三种方法的能力是运营效率的关键。具备弹性、韧性(Toughness,AWS 内部一直在强调的关键字)的云计算平台,才是可以经受时代变革洪流的领先的云平台。
诚然,我相信 Kubernetes 就如 OpenStack 的发展历程一般,会度过许多成长过程中的难关和挑战。但同时也可以确定的是,Kubernetes 并不会轻率的、奋不顾身的去挑战 OpenStack 在私有云 IaaS 领域的标准地位,因为 Kubernetes 自身也面临着诸多对手,例如 Serverless、例如 Lambda。Kubernetes 要想全面俘获企业级市场的信任必将经历长期的博弈过程,虚拟机、容器、裸机三种资源提供平台将会长期共存。
当然了,假如你问我 Kubernetes 和 OpenStack 我更喜欢哪一个,那么 Kubernetes 的许多思想和设计理念我认为都是比较先进的,但我们也不能忘记他之所以先进的原因 —— 站在巨人的肩膀上。
上述属于个人观点,碍于能力,仅供参考。写于上海 OpenInfra Summit 之前,希望届时能与大家在现场继续交流。
OpenStack v.s. Kubernetes的更多相关文章
- OpenStack宣布用Kubernetes重写底层编排引擎
Mirantis是OpenStack的主要贡献者,今天他宣布将使用Kubernetes作为底层编排引擎重写其私有云平台.我们认为这是推进OpenStack和Kubernetes 社区伟大的一步. Op ...
- Openstack+Kubernetes+Docker微服务实践之路--Kubernetes
经过几番折腾终于搞定Kubernetes了,我们要在Openstack上部署Kubernetes集群,使用最新工具Kubeadm来安装,由于不能直接访问Kubernetes的源,我们需要一台可以穿墙的 ...
- OpenStack VS Kubernetes,谁是你心中的王者?
当下云计算的领域里热度最高的两个项目,无疑是OpenStack和Kubernetes.如果云计算是一个风起云涌的江湖,毫不夸张的说OpenStack和Kubernetes就是江湖里的泰山北斗.Op ...
- 在 Kubernetes 上部署 OpenStack 是什么体验
红蓝出 CP,OpenStack 和 Kubernetes 在一起会怎样? 背景 从去年开始就想深入地学习 Kubernetes,首先想到是在 OpenStack 上能比较轻松地玩转,所以去 尝试了 ...
- Docker系列(八):Kubernetes横空出世背后的秘密
Docker与CoreOS的恩怨情仇 2013年2月,Docker建立了一个网站发布它的首个演示版本, 3月,美国加州Alex Polvi正在自己的车库开始 他的 第二次创业 有了第一桶金的Alex这 ...
- 【转】OpenStack和Docker、ServerLess能不能决定云计算胜负吗?
还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值460亿美元的SaaS之王.今天谈谈『No ...
- OpenStack Newton:集虚拟化,裸金属和容器部署的统一云平台(转载)
2016-10-08木屐大数据在线 国庆长假第六天,OpenStack第十四版本Newton(牛顿?)发布,官方介绍中强调这是一个集虚拟化.裸金属和容器技术的一体化平台,可通过一套API来管理裸金属. ...
- 手把手带你入门kubernetes部署
实验环境准备 k8s-master 192.168.2.156 k8s-node节点 192.168.2.161 Ps:两台保证时间同步,firewalld防火墙关闭,selinxu关闭,系统 ...
- yum安装k8s集群(kubernetes)
此案例是以一个主,三个node来部署的,当然node可以根据自己情况部署 192.168.1.130 master 192.168.1.131 node1 192.168.1.132 node2 19 ...
随机推荐
- jdk在window系统中的配置
其实配置很简单,百度上很多配置的复杂化了,今天办公室的某小白百度了半天也没有配置好. 我使用的是Linux ,就很多简单了很多编译器都是集成的,尤其是现在kali linux 系统觉得做得越来也好 ...
- Linux网络管理——ifconfig、route
Linux识别到的网络设备 eth# eth0 eth1 以太网卡 wifi# wifi0 wifi1 无线网卡 ppp# ppp0 ppp1 拨号连接 lo 本地环回网卡 ...
- Python内存数据序列化到硬盘上哪家强
1. 闲扯一下:文件 磁盘上的数据,我们一般称为 “文件” ,一般不同的文件都有各自的后缀名,比如 .txt .docx .xlsx .jpg .mp3 .avi .这些不同类型的文件一般分为两大类: ...
- Cloud Native Weekly |面对云平台宕机,企业如何止损
KubeEdge v0.2发布 KubeEdge在18年11月24日的上海KubeCon上宣布开源的一个开源项目,旨在依托K8S的容器编排和调度能力,实现云边协同.计算下沉.海量设备的平滑接入. Ku ...
- 用js刷剑指offer(链表中倒数第k个结点)
题目描述 输入一个链表,输出该链表中倒数第k个结点. 牛客网链接 思路 设置两个指针,p,q,先让p走k-1步,然后再一起走,直到p为最后一个 时,q即为倒数第k个节点 js代码 // 空间复杂度1 ...
- Codeforces 567C - Geometric Progression - [map维护]
题目链接:https://codeforces.com/problemset/problem/567/C 题意: 给出长度为 $n$ 的序列 $a[1:n]$,给出公比 $k$,要求你个给出该序列中, ...
- kafka相关
一.消息队列优点(解耦.异步.削峰)二.用消息队列都有什么优点和缺点?三.kafka.activemq.rabbitmq.rocketmq都有什么区别四.如何保证消息队列的高可用啊?五.如何保证消息不 ...
- usb相关
https://github.com/daynix/UsbDk/tree/master/UsbDk 更应该关注下libusb
- Codeforces Round #584 D. Cow and Snacks
链接: https://codeforces.com/contest/1209/problem/D 题意: The legendary Farmer John is throwing a huge p ...
- Windows服务启动时候报错1053
用.net 开发了一个C#语言的windows服务,在本地和测试环境,安装启动都正常,在新的线上环境报错,不能启动-报出-错误1053:服务没有及时响应启动或控制请求. 后来发现时线上.NET FRA ...