集群概念通常用来表示计算机网络集群架构,在如今互联网时代网络服务几乎都要依托集群系统进行架构,传统意义上的集群系统一般是指分布式应用集群,比如Jenkins
所支持的Master/Slave
架构就是典型意义上的应用集群系统,此时应用集群所依托的物理机或者操作系统这一层级的集群概念往往会被忽略掉,而在虚拟化技术和容器技术出现之后,PMC
这一概念就要被明晰并作为集群架构构建的基础。
虚拟化技术的核心是hypervisor
,可以简单的认为该软件中间件运行于Host OS Kernel
和Guest OS Kernel
之间,在Host
机器上虚拟化出硬件环境并由此运行Guest
系统内核,虚拟化技术可以简单的用来在一台机器上虚拟若干Guest
系统实现虚机集群;也可以部署到物理机集群中灵活弹性的调用物理资源构建虚机集群;后者虚拟集群也常常被称为云系统,大名鼎鼎的OpenStack
就是虚机集群/云部署管理平台,由此应用集群既可以直接部署到物理机集群也可以部署到之上构建的虚机集群中。
虚拟机技术的本质是在软件层面虚拟计算机硬件环境,虽然部署管理灵活但本身资源消耗较多,为此轻量级虚拟化技术 - 容器技术就主要用来解决该问题,容器的技术的核心在于Container
,可以简单类比为系统进程,一般通过端口映射实现网络服务,Container
的运行依赖于Image
(镜像),在实际应用中简单的网络服务使用容器技术实现较为繁琐,不如虚机技术直观方便,因此容器技术主要应用场景为构建容器集群,