云计算的三种服务模式

IAAS ,Infrastructure As a Service,基础设施即服务。将基础设施通过租用的方式,按量或时长计费的服务模式,例如:阿里云。

PaaS,Platform As a Service(平台即服务)提供给消费者的服务是把客户的应用程序部署到供应商的云计算基础设施。即提供平台,供客户的应用程序运行,例如:新浪云。

SaaS,Software As a Service(软件即服务)提供给客户的服务是运营商运行在云计算基础设施上的应用程序。这种服务模式,用户使用服务商提供的软件服务,例如:Office365。

资源集群管理

由云计算的三种服务模式,衍生出资源集群管理的需求、比如网络、存储、服务。

Apache Mesos是apache基金会下开源的分布式资源管理框架,由加州大学伯克利分校的AMPLab首先开发的一款开源群集管理软件。一开始被twitter选用,大规模的应用在twitter的基础资源管理中。

Docker Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。优势是很轻量,相对来说提供的功能很少,很多功能需要手工来完成。在大批量系统中,也能良好支撑。

Kubernetes 简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。是谷歌内部borg演化而来,一经开源便受到各个大型云计算厂商的欢迎。2019年7月,阿里云正式废弃docker swarm的支持,仅将k8s作为唯一的集群管理方式。

k8s优点

轻量级、消耗资源小。
开源。
弹性伸缩
模块间的负载均衡:ipvs

使用Kubernetes能做什么?

可以在物理或虚拟机的Kubernetes集群上运行容器化应用,Kubernetes能提供一个以“容器为中心的基础架构”,满足在生产环境中运行应用的一些常见需求,如:

多个进程(作为容器运行)协同工作。(Pod)
存储系统挂载
Distributing secrets
应用健康检测
应用实例的复制
Pod自动伸缩/扩展
Naming and discovering
负载均衡
滚动更新
资源监控
日志访问
调试应用程序
提供认证和授权
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

k8s的出现解决了传统应用部署的痛点,以容器技术实现应用间的隔离,实现不同应用和资源的结构。实现不同基础设施,不同操作系统之间的快速迁移。