集群资源调度系统对比
大小:0.6 MB 人气: 2017-10-10 需要积分:1
在高手出场前,让我们先快速回顾一下有关容器技术的背景知识。
从容器(Container)到Docker
1. 容器(Container)
提到虚拟化,很多人都会立刻想到虚拟机,其实它只是虚拟化的一种实现。容器是另一种虚拟化,一种操作系统级别的虚拟化。从本质上来说,容器就是提供一个与宿主机操作系统共享内核但与系统中的其它进程资源相隔离的执行环境。其轻量级部署运行和秒级启动特性,帮助开发者快速构建、发布、部署和实例化应用程序。
容器化最直接的好处在于简化DevOps,当应用采用了微服务架构(Micro-services architecture),每个容器就是一个微服务,而容器的灵活性意味着微服务可以随负载增长而快速横向扩展,且namespace(包含一个应用程序能够交互的所有资源)与资源隔离阻止了微服务实例之间的互相干扰。
2. Docker
Docker是时下流行的容器技术之一,起先是基于LXC(Linux Container)的开源容器管理引擎, 现在runC(标准化容器执行引擎,符合OCI标准的开放容器项目)更让它欣欣向荣向前发展。
与传统“重量级”的虚拟机相比,Docker在LXC之上融合AUFS分层镜像管理机制,抛弃传统虚拟机试图模拟完整机器的思路,而是以应用为单元进行“集装封箱”,是“轻量级”的虚拟化技术。
Docker Engine可以自动化部署应用到可移植的的容器中,这些容器独立于硬件、语言、框架、打包系统。一个标准的Docker容器包含一个软件组件及其所有的依赖,包括二进制文件,库,配置文件,脚本等,实现持续集成与部署,快速迭代应用程序。
Docker容器可以封装任何有效负载,几乎可以在任何服务器之间进行一致性运行。开发者构建的应用只需一次构建即可多平台运行。运营人员只需配置他们的服务,即可运行所有应用。
Docker的终极目标是简化容器的创建,并让这些容器可以作为开发者和系统管理者标准化、配置、交付应用的最佳方案。如果说Docker交付运行环境如同海运,那么OS如同一个货轮,每一个在OS上的App都如同一个集装箱,用户可以通过标准化手段自由组装运行环境, 同时集装箱的内容可由用户自定义,也可由专业人员制造。这样,交付一个应用,就是一系列标准化组件的集合交付。
高手登场了
身为一个容器调度高手,TA一定会选择最适合的Host来启动容器,并让容器之间紧密协同;对于失效容器立即自动替换,一切错误处理尽在掌控中;当高并发突然来袭,能迅速扩展容器来应对等等。那么今天的这三位主角——Docker Swarm、Apache Mesos、Google Kubernetes,在大规模集群容器场景的挑战下,又会表现出怎样的特征和本领?
1. Docker Swarm篇
Docker Swarm是Docker公司在2014年12月初发布的一套管理Docker集群的工具。它将一群Docker宿主机变成一个单一的虚拟主机,而且使用标准的Docker API接口作为其前端访问入口,这样一来,各种形式的Docker工具都可以很容易与Swarm进行集成。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%