一.云计算

1.1 概述
云计算管理的是网络资源、存储资源、服务器资源等物理硬件资源。
可以使客户在任何时间任何地点,通过网络,获取所需要的资源或服务,并且按需分配,按用量进行收费。
  1. 狭义的云计算:指IT基础设施的交付和使用模式
  2. 广义的云计算:指服务的交付和使用模式
  3. 云计算概述:it基础设施和交付和使用模式
    定义了资源池,用户借助于网络,调用资源池
    用户通过网络使用云资源池(根据自己的需求)
    租赁形式
    按量计费
    弹性伸缩
1.2 云计算服务模型
1)laas(基础架构)
  • IT基础设施服务(处理能力、存储空间、网络资源)
    • 存储空间:对象存储,静态资源 图片、视频、音频,不能直接修改数据
    • 需要下载到本地/设备/终端,才可以修改,再上传
    • (一般是IT人员)
2)PaaS(平台服务)
  • 把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
  • (一般是开发人员)
3)saas(软件即服务)
  • 直接通过互联网为空户提供软件和应用程序服务
  • (一般普通用户)

二 Openstack 概述

2.1 概述
  1. OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。

  2. 其中的六个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。

2.2 分类
  1. 公有云:对面客户
  2. 私有云:只为企业内部使用,服务器是托管给阿里云维护
  3. 专有云:也是为企业内部所使用,使用的服务器是客户自己的服务器
  4. 混合云:公私都有
  5. 混合云:例如银行
  6. 覆盖了网络、虚拟化、操作系统、服务器等各个方面
2.3 Openstack服务

在这里插入图片描述

3.1 云计算服务模型
  1. laaS (基础架构即服务)
    ① 提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
    ② 面向对象一般是IT管理人员
  2. ■PaaS (平台即服务)
    ① ●把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
    ② ●面向对象一般是开发人员
  3. ■SaaS (软件即服务)
    ① ●直接通过互联网为用户提供软件和应用程序等服务
    ② ●面向对象一 般是普通用户
2.4 Openstack优势
  1. 控制性:完全控制平台,提供API接口,方便第三方技术集成
  2. 兼容性:兼容其他共有云,方便用户进行数据迁移
  3. 可扩展性: 模块化设计,通过横向扩展,增加节点,添加资源
  4. 灵活性:根据自己的需要,建立相应的基础设施,增加集群规模
  5. 行业标准:众多IT领军企业已经加入到openstack项目
2.5 Openstack概念架构

在这里插入图片描述
在这里插入图片描述

  1. Nova
    Nova是整个Openstack里面最核心的组件。当初Rackspace和NASA贡献代码时,NASA贡献的那部分就是Nova最早的代码(Rackspace贡献的代码是Swift)。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,它负责管理整个云的计算资源、网络、授权及测度。

  2. Keystone
    Keystone为所有的OpenStack组件提供认证和访问策略服务,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。

  3. Horizon
    Horizon是一个用以管理、控制OpenStack服务的Web控制面板。用户可以通过这个界面对OpenStack状态进行查看和管理。

2.6 3个全局组件
  1. keystone提供认证
  2. ceilometer监控
  3. horizon控制台,用户登录使用,控制组件和作用
2.7 核心组件
都是直接为虚拟机提供支持
创建虚拟机,需要网络镜像、两个存储、分别调用资源,统一给虚拟机,让虚拟机可创建
  1. nova:调用glance功能,给虚拟机,接受来自于命令行,控制台,其他平台的需求
  2. 控制台:提供需求,nova:完成需求
2.8 其他组件
  • lronic裸金属服务,trove:小型数据库 heat,sahara:共同对数据处理和编排和分析
2.8.1设计基本原则
  1. 按照不同的功能和通用性划分不同的项目,拆分子系统
  2. 按照逻辑计划,规范子系统之间的通信
  3. 通过分层设计整个系统架构
    ① 全局组件
    ② 核心组件
    ③ 其他支持组件
  • 不同的功能子系统间提供统一的API接口
2.9 Openstack逻辑架构

在这里插入图片描述

  1. 全局架构来看:OpenStack包括相互独立的服务组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。所以,API即是每个服务内部和外部的交界处,隔离了内外。
  • 服务之间交互过程:每个服务又由若干组件组成,包含多个进程。每个服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,(预处理就是将请求暴露出来的API接口,给keystone进行认证,如果认证通过,则放入队列等待被处理。)
    然后将它们传送到自己服务后端的其他组件,对请求进行处理,而不是API进程去处理。也就是说除了认证服务,实际工作都是由具体的进程完成的
  1. 服务内各个进程之间的通信:使用AMQP消息代理。服务的状态存储在数据库中。

  2. 消息队列:常用的三种类型,包括rabbitmq、 rocketmq、kafka,是两个独立的服务之间,消息传递的载体,解决消息在传输是请求的高并发问题,会以容器的方式,存储消息列表包括( 请求、交互、报文),划分重要等级放入队列中,逐个处理,处理完的会自动删除。

2.9.1 图解
  1. 介绍了openstack原生架构的组件
    什么组件,组件功能——-点对点对接,通过api接口
  2. 单个组件怎么对外提供服务
  3. 单个组件进程之间的通信——服务状态存储再数据库中
2.9.2归纳

1.按分层介绍原生架构中的组件
2.组件之间对接(点到点)是使用API
3.单个组件内部,根据设计原则,分为多个子系统,子系统之间交互,通过AMQP(消息队列)进行的

2.10 Openstack物理架构

在这里插入图片描述

2.10.1图解

根据职能分类

  1. 控制节点:管理openstack架构
  2. 网络节点:复制各节点之间的通信/交互
  3. 计算节点:主要负责承载实例,次要负责具体需求的处理
  4. 存储节点:提供存储服务

三.OpenStack架构解析

3.1 四大节点
 整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署)其中:
3.2控制节点
  • 定位:运维人员通过控制节点从而控制整个openstack架构。
  • 在这里插入图片描述
  1. 控制节点包括支持服务,基础服务,扩展服务和网络接口服务,外部的裸金属服务提供物理资源支撑。
  2. 支持服务:包括数据库支持和通信支持,为整个节点提供数据存储服务和服务之间消息队列的通信服务。
  3. 基础服务:为虚拟机提供基础的镜像、网络、计算资源;keystone负责整个架构的认证和授权,运维人员通过horizon可视化的界面进行管理。
  4. 扩展服务:主要针对虚拟机的数据管理,heat进行数据的编排和管理。计量服务在此获取虚拟机的数据源,进行资源监控和计量,并记录。
  5. 网络接口:专门管理节点的网络服务,用于联系控制其他节点。
3.3 基础管理服务
  1. Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
  2. Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
  3. Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
  4. Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供了Neutron在Horizon的管理面板
  5. Horizon:控制台服务,提供了以web的形式,对所有节点的所有服务管理,,通常把该为DashBoard
3.4扩展管理服务
  1. Cinder:提供管理块存储节点服务,同时提供Cinder在Horizon中的管理面板
  2. Swift:提供管理对象存储节点服务,同时提供Swift在Horizon中的管理面板
  3. Trove:提供管理数据库的节点服务,同时提供Trove在Horizon中的管理面板
  4. Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性
  5. Centimeter:提供对物理资源以及虚拟资源的监控,并且记录这些数据,对该数据进行分析,在一定的条件下,触发相应的动作
3.5 计算节点架构

计算节点包括Nova、Neutron、Telemeter三个服务

基础服务

  1. Nova:提供虚拟机的创建、运行、迁移、快照等各种围绕虚拟机的服务,并且提供API与控制节点对接,有控制节点下发任务
  2. Neotron:提供计算节点与网络节点之间的通信服务

扩展服务

  1. Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务

四.核心服务

4.1 Keystone概念
  1. Keystone (OpenStack Identity Service)是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证、令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制。
  2. Keystone类似一个服务总线,或者说是整个Openstack框架的注册表,其他服务通过keystone来注册其服务的Endpoint (服务访问的URL),任何服务之间相互的调用,需要经过Keystone的身份验证,来获得目标服务的Endpoint来找到目标服务。
4.2 功能
  1. 身份认证:负责令牌的发放和校验
  2. 用户授权:授权用户有指定的可执行动作的范围
  3. 用户管理:管理用户的账户
  4. 服务目录:提供可用服务的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组件通信关系
  1. 基于AMQP协议的通信
    用于每个项目内部各个组件之间的通信。
  2. 基于SQL的通信
    用于各个项目内部的数据库通信。
  3. 基于HTTP协议进行通信
    通过各项目的API建立的通信关系,API都是RESTful Web API。

通过Native API实现通信
OpenStack各组件和第三方软硬件之间的通信。

5.2 云计算服务模型
  1. ■laaS (基础架构即服务)
  2. ■PaaS (平台即服务)
  3. ■SaaS (软件即服务)

转自:
https://blog.csdn.net/weixin_56477161/article/details/119747841