openstack,docker,mesos,Kubernetes(k8s)
链接:https://www.zhihu.com/question/62985699/answer/204233732
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- OpenStack:公认的云计算IaaS平台,其管理的核心目标对象是机器(虚拟机或物理机),当然也可以管理存储和网络,但那些也大都是围绕着机器所提供的配套资源。近年来容器技术火了之后,OpenStack也开始通过各种方式增加对容器的支持,但目前OpenStack还不被视为管理容器的主流平台。
- Docker:这里我假定你指的是Docker engine(也叫做Docker daemon,或最新的名字:Moby),它是一种容器运行时(container runtime)的实现,而且是最主流的实现,几乎就是容器业界的事实标准。Docker是用来创建和管理容器的,它和容器的关系就好比Hypervisor(比如:KVM)和虚拟机之间的关系。当然,Docker公司对Docker engine本身的定位和期望不仅仅在于在单机上管理容器,所以近年来一直在向Docker engine中加入各种各样的高级功能,比如:组建多节点的Docker集群、容器编排、服务发现,等等。
- Kubernetes(K8s):搭建容器集群和进行容器编排的主流开源项目(亲爹是Google),适合搭建PaaS平台。容器是Kubernetes管理的核心目标对象,它和容器的关系就好比OpenStack和虚拟机之间的关系,而它和Docker的关系就好比OpenStack和Hypervisor之间的关系。一般来说,Kubernetes是和Docker配合使用的,Kubernetes调用每个节点上的Docker去创建和管理容器,所以,你可以认为Kubernetes是大脑,而Docker是四肢。
- Mesos:哈,终于说到我目前正在做的啦!Mesos是一个通用资源管理平台,它所管理的核心目标对象既不是虚拟机/物理机,也不是容器,而是各种各样的计算资源(CPU、memory、disk、port、GPU等等)。Mesos会收集各个节点上的计算资源然后提供给运行在它之上的应用框架(比如:Spark、Marathon、甚至是Kubernetes)来使用,应用框架可以将收到的计算资源以自己喜欢的任何方式创建成计算任务来完成特定工作(比如:创建一个大数据任务计算个π什么的)。由于容器技术近年来的火热,Mesos也对容器进行非常深层次的支持,它内部完整地实现了一个容器运行时(类似于Docker),所以,上层的应用框架可以方便地把自己的计算任务以容器的方式在Mesos管理的计算集群中运行起来。使用Mesos的门槛相对较高(需要应用框架编写代码调用Mesos的API和其集成),但一旦用起来之后灵活性和可扩展性更高,因为Mesos并不限制应用框架如何使用计算资源(可以以容器的方式使用,也可以是其它方式,比如:传统的进程),主动权完全在应用框架自己手中。作为对比,Kubernetes只能管理容器,所有任务都必须以容器的方式来运行。为了解决门槛较高的问题(当然也是为了赚钱),Mesosphere(Mesos这个开源项目背后的商业公司)推出了DC/OS,其核心就是Mesos加一个内置的应用框架Marathon(可以用做容器编排),能够达到开箱即用的效果,安装好之后立刻就可以创建和管理容器和非容器类的任务了。
openstack,docker,mesos,Kubernetes(k8s)的更多相关文章
- Kubernetes(K8s)部署 SpringCloud 服务实战
1. 概述 老话说的好:有可能性就不要放弃,要敢于尝试. 言归正传,之前我们聊了一下如何在 Kubernetes(K8s)中部署容器,今天我们来聊一下如何将 SpringCloud 的服务部署到 Ku ...
- Minikube之Win10单机部署Kubernetes(k8s)自动化容器操作的开源平台
Minikube之Win10单机部署 Kubernetes(k8s)是自动化容器操作的开源平台,基于这个平台,你可以进行容器部署,资源调度和集群扩容等操作.如果你曾经用过Docker部署容器,那么可以 ...
- dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启
kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/pkg/dns/dns.go:150: Failed to list *v1.Service: Get https:// ...
- kubernetes(K8S)快速安装与配置集群搭建图文教程
kubernetes(K8S)快速安装与配置集群搭建图文教程 作者: admin 分类: K8S 发布时间: 2018-09-16 12:20 Kubernetes是什么? 首先,它是一个全新的基于容 ...
- (转)dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启
转:https://blog.csdn.net/shida_csdn/article/details/80028905 kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/ ...
- Kubernetes --(k8s)入门
k8s 简介: 什么是k8s? Kubernetes (k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术基础上,为容器化的应用提供部署运行.资源调度.服务发现和动 ...
- 使用国内的镜像源搭建 kubernetes(k8s)集群
1. 概述 老话说的好:努力学习,提高自己,让自己知道的比别人多,了解的别人多. 言归正传,之前我们聊了 Docker,随着业务的不断扩大,Docker 容器不断增多,物理机也不断增多,此时我们会发现 ...
- 使用 Skywalking 对 Kubernetes(K8s)中的微服务进行监控
1. 概述 老话说的好:任何成功都不是轻易得来的,是不断地坚持与面对的结果. 言归正传,之前我们聊了 SpringCloud 开发的微服务是如何部署在 Kubernetes(K8s)集群中的,今天我 ...
- Kubernetes(K8s)基础概念 —— 凿壁偷光
Kubernetes(K8s)基础概念 -- 凿壁偷光 K8s是什么:全称 kubernetes (k12345678s) 作用:用于自动部署,扩展和管理"容器化应用程序"的 ...
随机推荐
- cmake之指定clang(++)编译器为默认编译器
1.说明 本文演示环境的cmake版本3.18 clang是自己源码安装的,非获取已经编译好的binary 2.代码 2.1 添加下面的代码到CMakeLists.txt中,且放到 project语句 ...
- 【LeetCode】256. Paint House 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetco ...
- Java不可变类与final类
概念 Java的不可变类是指八个基础类型的包装类和String,他们的数据成员是不可变的.使用加法等操作时,其实是创建了一个新的对象. Java的final类是对类用关键字final进行修饰,说明该类 ...
- HashMap及LinkedHashMap
HashMap是Map族中最为常用的一种,也是Java Collection Framework的重要成员.HashMap和双向链表合二为一即是LinkedHashMap.所谓LinkedHashMa ...
- CS5265 demoboard|CS5265测试板电路参考|CS5265 Typec转HDMI 4K60HZ方案
CS5265是TYPEC转HDMI2.0音视频转换芯片,CS5265符合DP1.4协议,且输出的视频信号是HDMI2.0 即4K60HZ CS5265集成了DP1.4兼容接收机和HDMI2.0b兼容 ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...
- Linux 使用 split 命令分割文件
使用方法: $ split --help 用法:split [选项]... [输入 [前缀]] 将输入内容拆分为固定大小的片段并输出到"前缀aa"."前缀ab" ...
- 通过 v-once 创建低开销的静态组件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <script s ...
- Golang 简洁架构实战
文中项目代码位置:https://github.com/devYun/go-clean-architecture 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.l ...
- Selenium_使用switch_to.window方法处理窗口切换(12)
想一下这样的场景,打开页面A点击一个链接,在一个新的窗口打开页面B,由于之前的driver实例对象在页面A,但是你接下来操作的元素在页面B中,此时脚本就会报错找不到元素.该场景需要使用到seleniu ...