为什么人们会舍弃docker,转投K8S?
为什么人们会舍弃docker,转投K8S?
1.先来简单聊聊docker
1.1虚拟机
相信很多人都用过虚拟机,无论是java的jvm,还是Windows下的VMvare,它的优越性不言而喻。在虚拟机的世界里,虚拟机,类似于“子电脑”,在“子电脑”里,你可以和正常电脑一样运行程序,例如开QQ。如果你愿意,你可以变出好几个“子电脑”,里面都开上QQ。“子电脑”和“子电脑”之间,是相互隔离的,互不影响。
1.2可是有没有比虚拟机性能更优越,对资源利用率更高的东西呢?
有,那便是容器。容器是一个不依赖于操作系统,运行应用程序的环境。使用容器,而不是像虚拟机(VM)那样虚拟化底层计算机,只是虚拟化操作系统。它通过Linux的Namespace技术对应用程序进程进行隔离和限制的具体对比如下图:
与VM相比,容器所需的全部功能都足以支持程序和库以及运行特定程序的系统资源,因此docker容器可以做到秒级别,而vm只能做到分钟级别。
1.3docker三大技术:
Docker技术的三大核心概念,分别是:
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
我们将做好的软件打包,放在一个空间中,那个放在空间里的“镜像”,就是Docker镜像。而我的空间,就是Docker仓库。我在空地上,用魔法造好的房子,就是一个Docker容器。
1.4docker缺点
有人会说,docker这么好,那到底有什么缺点呢?作为运维人员来说,来整理dockers是十分困难的,即使他创造了如同GitHub一样的dockerHub,他难以集群管理(源自于轻量级的限制),它是以进程级别管理,很容易就会被系统自动杀掉kill进程,因此新的技术诞生了,他就是k8s!
2.k8s Kubernetes
2.1 k8s他可以做什么?
- 集群管理:通过控制台一键创建集群,支持GPU实例和裸金属服务器
- 应用管理:它支持灰度发布!
- 安全管理:与docker相比,它增加了对操作系统的加固(防止后台kill掉应用并实时监控
注意:什么是灰度发布:“灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。
简单来说就像一个内测系统,现在一部分用户体验新版本,确保没有重大bug后,将另外一部分用户迁移到新版本中,形成新旧版本更替的平滑过渡。
2.2云计算的加持
图来自于阿里云:阿里云对k8s的支持高于dockers,它支持跨云统一管理,对于dockers的痛点来说(难以多个容器进行管理进行了提升),笔者认为:软件的诞生基于用户的使用量,而大公司对其维护,基于的也是这忠实的 用户,可预见在未来k8s得到了阿里云的支持后一定会将docker甩在身后。
2.3应用场景,在阿里云中支持devops,机器学习等主流框架
K8s 在这里的应用主要是模型训练和模型预测两个环节,大家可以看到整个工作流环节比较多,除了模型训练,还有模型部署、样本生成、模型部署等许多环节,深度学习平台的目标是为业务提供一站式的工作流服务,让业务不用关心底层烦琐的工程细节,比如资源的调度、GPU 的分配细节等等,让工程师们专注于算法和效果的调优。
谢谢读者看到这里,本文有参考于阿里云开发者社区。
所有评论(0)