一.云计算
1.1 概述
云计算管理的是网络资源、存储资源、服务器资源等物理硬件资源。
可以使客户在任何时间任何地点,通过网络,获取所需要的资源或服务,并且按需分配,按用量进行收费。
- 狭义的云计算:指IT基础设施的交付和使用模式
- 广义的云计算:指服务的交付和使用模式
- 云计算概述:it基础设施和交付和使用模式
定义了资源池,用户借助于网络,调用资源池
用户通过网络使用云资源池(根据自己的需求)
租赁形式
按量计费
弹性伸缩
1.2 云计算服务模型
1)laas(基础架构)
- IT基础设施服务(处理能力、存储空间、网络资源)
- 存储空间:对象存储,静态资源 图片、视频、音频,不能直接修改数据
- 需要下载到本地/设备/终端,才可以修改,再上传
- (一般是IT人员)
2)PaaS(平台服务)
- 把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
- (一般是开发人员)
3)saas(软件即服务)
- 直接通过互联网为空户提供软件和应用程序服务
- (一般普通用户)
二 Openstack 概述
2.1 概述
-
OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。
-
其中的六个项目主要负责处理核心云计算服务,包括
计算、网络、存储、身份和镜像服务
。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。
2.2 分类
- 公有云:对面客户
- 私有云:只为企业内部使用,服务器是托管给阿里云维护
- 专有云:也是为企业内部所使用,使用的服务器是客户自己的服务器
- 混合云:公私都有
- 混合云:例如银行
- 覆盖了网络、虚拟化、操作系统、服务器等各个方面
2.3 Openstack服务
3.1 云计算服务模型
- laaS (基础架构即服务)
① 提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
② 面向对象一般是IT管理人员 - ■PaaS (平台即服务)
① ●把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
② ●面向对象一般是开发人员 - ■SaaS (软件即服务)
① ●直接通过互联网为用户提供软件和应用程序等服务
② ●面向对象一 般是普通用户
2.4 Openstack优势
- 控制性:完全控制平台,提供API接口,方便第三方技术集成
- 兼容性:兼容其他共有云,方便用户进行数据迁移
- 可扩展性: 模块化设计,通过横向扩展,增加节点,添加资源
- 灵活性:根据自己的需要,建立相应的基础设施,增加集群规模
- 行业标准:众多IT领军企业已经加入到openstack项目
2.5 Openstack概念架构
-
Nova
Nova是整个Openstack里面最核心的组件。当初Rackspace和NASA贡献代码时,NASA贡献的那部分就是Nova最早的代码(Rackspace贡献的代码是Swift
)。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,它负责管理整个云的计算资源、网络、授权及测度。 -
Keystone
Keystone为所有的OpenStack组件提供认证和访问策略服务,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。 -
Horizon
Horizon是一个用以管理、控制OpenStack服务的Web控制面板。用户可以通过这个界面对OpenStack状态进行查看和管理。
2.6 3个全局组件
- keystone提供认证
- ceilometer监控
- horizon控制台,用户登录使用,控制组件和作用
2.7 核心组件
都是直接为虚拟机提供支持
创建虚拟机,需要网络镜像、两个存储、分别调用资源,统一给虚拟机,让虚拟机可创建
- nova:调用glance功能,给虚拟机,接受来自于命令行,控制台,其他平台的需求
- 控制台:提供需求,nova:完成需求
2.8 其他组件
- lronic裸金属服务,trove:小型数据库 heat,sahara:共同对数据处理和编排和分析
2.8.1设计基本原则
- 按照不同的功能和通用性划分不同的项目,拆分子系统
- 按照逻辑计划,规范子系统之间的通信
- 通过分层设计整个系统架构
① 全局组件
② 核心组件
③ 其他支持组件
- 不同的功能子系统间提供统一的API接口
2.9 Openstack逻辑架构
- 全局架构来看:OpenStack包括相互独立的服务组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。所以,API即是每个服务内部和外部的交界处,隔离了内外。
- 服务之间交互过程:每个服务又由若干组件组成,包含多个进程。每个服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,(预处理就是将请求暴露出来的API接口,给keystone进行认证,如果认证通过,则放入队列等待被处理。)
然后将它们传送到自己服务后端的其他组件,对请求进行处理,而不是API进程去处理。也就是说除了认证服务,实际工作都是由具体的进程完成的
-
服务内各个进程之间的通信:使用AMQP消息代理。服务的状态存储在数据库中。
-
消息队列:常用的三种类型,包括r
abbitmq、 rocketmq、kafka
,是两个独立的服务之间,消息传递的载体,解决消息在传输是请求的高并发问题,会以容器的方式,存储消息列表包括(请求、交互、报文
),划分重要等级放入队列中,逐个处理,处理完的会自动删除。
2.9.1 图解
- 介绍了openstack原生架构的组件
什么组件,组件功能——-点对点对接,通过api接口 - 单个组件怎么对外提供服务
- 单个组件进程之间的通信——服务状态存储再数据库中
2.9.2归纳
1.按分层介绍原生架构中的组件
2.组件之间对接(点到点)是使用API
3.单个组件内部,根据设计原则,分为多个子系统,子系统之间交互,通过AMQP(消息队列)进行的
2.10 Openstack物理架构
2.10.1图解
根据职能分类
- 控制节点:管理openstack架构
- 网络节点:复制各节点之间的通信/交互
- 计算节点:主要负责承载实例,次要负责具体需求的处理
- 存储节点:提供存储服务
三.OpenStack架构解析
3.1 四大节点
整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署)其中:
3.2控制节点
- 定位:运维人员通过控制节点从而控制整个openstack架构。
- 控制节点包括支持服务,基础服务,扩展服务和网络接口服务,外部的裸金属服务提供物理资源支撑。
- 支持服务:包括数据库支持和通信支持,为整个节点提供数据存储服务和服务之间消息队列的通信服务。
- 基础服务:为虚拟机提供基础的镜像、网络、计算资源;keystone负责整个架构的认证和授权,运维人员通过horizon可视化的界面进行管理。
- 扩展服务:主要针对虚拟机的数据管理,heat进行数据的编排和管理。计量服务在此获取虚拟机的数据源,进行资源监控和计量,并记录。
- 网络接口:专门管理节点的网络服务,用于联系控制其他节点。
3.3 基础管理服务
- Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
- Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
- Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
- Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供了Neutron在Horizon的管理面板
- Horizon:控制台服务,提供了以web的形式,对所有节点的所有服务管理,,通常把该为DashBoard
3.4扩展管理服务
- Cinder:提供管理块存储节点服务,同时提供Cinder在Horizon中的管理面板
- Swift:提供管理对象存储节点服务,同时提供Swift在Horizon中的管理面板
- Trove:提供管理数据库的节点服务,同时提供Trove在Horizon中的管理面板
- Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性
- Centimeter:提供对物理资源以及虚拟资源的监控,并且记录这些数据,对该数据进行分析,在一定的条件下,触发相应的动作
3.5 计算节点架构
计算节点包括Nova、Neutron、Telemeter三个服务
基础服务
- Nova:提供虚拟机的创建、运行、迁移、快照等各种围绕虚拟机的服务,并且提供API与控制节点对接,有控制节点下发任务
- Neotron:提供计算节点与网络节点之间的通信服务
扩展服务
- Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务
四.核心服务
4.1 Keystone概念
- Keystone (OpenStack Identity Service)是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证、令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制。
- Keystone类似一个服务总线,或者说是整个Openstack框架的注册表,其他服务通过keystone来注册其服务的Endpoint (
服务访问的URL
),任何服务之间相互的调用,需要经过Keystone的身份验证,来获得目标服务的Endpoint来找到目标服务。
4.2 功能
- 身份认证:负责令牌的发放和校验
- 用户授权:授权用户有指定的可执行动作的范围
- 用户管理:管理用户的账户
- 服务目录:提供可用服务的API端点位置
4.3 Keystone工作流程
- 用户通过命令行或者horizon控制面板的方式登录openstack,凭借自己的证书(credentials)给keystone验证.
- Keystone对用户的证书验证,验证通过则会发布一个令牌(token)和用户所需服务的位置点(endpoint)给用户。
- 用户得到了位置点(endpoint)之后,携带自己的令牌,向nova发起请求,请求创建虚拟机。
- nova会拿着用户的token向keystone进行认证,看是否允许用户执行这样的操作。
- keystone认证通过之后,返回给nova,nova即开始执行创建虚拟机的请求。首先需要镜像资源,nova带着令牌(token)和所需要的镜像名向glance提出镜像资源的请求。
- glance会拿着token去向keystone进行认证,看是否允许提供镜像服务。keystone认证成功后,返回给glance。glance向nova提供镜像服务。
- 创建虚拟机还需要网络服务,nova携带token向neutron发送网络服务的请求
- neutron拿着nova给的token向keystone进行认证,看是否允许向其提供网络服务
- keystone认证成功后,返回给nuetron。nuetron则给nova提供网络规划服务。
- nova获取了镜像和网络之后,开始创建虚拟机,通过hypervisior可调用底层硬件资源进行创建。创建完成返回给用户,成功执行了用户的请求。
五总结
openstack:私有云开源,堆叠架构
5.1 核心:实例
选项 | 描述 |
---|---|
Horizon(Dashboard) | 为用户提供了一个图形化的WEB前端的控制台,用于管理openstack的资源和服务,使其相对直观化 |
nova | 通过虚拟化提供计算资源池 |
neutron | 实现虚拟机网络资源管理 |
keystone | 身份认证管理 |
swift | 对象存储 |
cinder | 块存储 |
glance | 镜像 |
ceilometer | 采集,计量 |
heat | 自动化部署 |
Trove | 数据库 |
5.1 OpenStack组件通信关系
- 基于AMQP协议的通信
用于每个项目内部各个组件之间的通信。 - 基于SQL的通信
用于各个项目内部的数据库通信。 - 基于HTTP协议进行通信
通过各项目的API建立的通信关系,API都是RESTful Web API。
通过Native API实现通信
OpenStack各组件和第三方软硬件之间的通信。
5.2 云计算服务模型
- ■laaS (基础架构即服务)
- ■PaaS (平台即服务)
- ■SaaS (软件即服务)
转自:
https://blog.csdn.net/weixin_56477161/article/details/119747841