云计算
特征
安全,可靠,扩展,维护
按需自服务
用户根据需求获得计算资源(服务器/存储),用户不需要与资源服务器进行与人的交互
广泛的网络访问
通过网络访问云服务,IP网络
用户可以通过在任何地点和任何方式访问服务
资源共享
提供者将计算资源形成一个资源池,采用租赁模式为多用户提供服务
计算资源可以根据用户需求,动态的进行分配和重新分配不同的物理和虚拟资源
快速弹性
容量可以在某些情况下快速的扩展或快速收缩
对用户而言,可用的供应容量一般无限制,同时可以在任何时间购买到任何数量的资源
服务可度量
云系统可以在某些抽象的层次上将用于提供服务的计算能力进行自动的控制和优化资源的使用
资源的使用可以进行监控、控制和报告,保证服务的可用性
云计算的服务和交付模式
云部署模型
OpenStack 版本
以 A -Z 进行版本命名,更新版本大约6个月
https://releases.openstack.org/
组件
Neutron 网络服务
Horizon 面板组件
提供基于Web与内部各服务组件进行交互的界面,例如在web界面创建虚拟机实例,分配ip地址,配置访问规则等等
Keystone 身份服务模块
用户
租户
角色
权限:
管理权限:
使用权限:
Service: Nova、Glance、Swift、都需要在KeyStone上进行注册
Endpoint:每个服务的访问点
Token: 访问资源的令牌,具有时效性
Identity: 验证身份凭证
Token:服务将会验证并管理用于验证请求身份的令牌
Catalog:提供了可用于端点发现的服务注册表(Nova、Glance、Swift )
Policy:身份验证引擎
Nova 虚拟机管理
实例的生命周期管理(主要是虚拟机管理)
计算资源管理(弹性伸缩)
对外提供Rest风格的API
nova-api:位于表示层,主要负责接受外部的api请求
nova-scheduler : 逻辑控制层,选择由哪个主机创建mv
nova-compute:虚拟机的创建,资源的创建,提供了很多种虚拟机(KVM - LXC - QEMU - UML - vSphere - Xen)
上面三层 通过消息中间件传递
流程:
nova-api -> Rabbit MQ - > nova-scheduler 根据不同的算法选择不同的主机 -> Rabbit MQ -> nova-compute 创建虚拟机
Glance 镜像服务
提供虚拟机镜像的存储、查询和检索服务、为Nova组件提供服务,依赖与存储服务(具体镜像)与数据库(存放镜像的元数据)
Swift 对象存储
对象存储服务,提供高可用分布式对象存储服务(无线可扩展-无单点故障)
用户 容器 对象
account - > container - > object
可以通过http(s) 、 Object API 、S3接口 进行存储
Cinder 块存储
块存储设备,管理所有的块存储设备,为VM服务
请求 -> cinder-api -> rabbit MQ -> cinder-scheduler(调度器) -> cinder-volume(对存储的数据做创建删除等等操作)
Neutron :
网络服务,提供云计算环境下的虚拟网络功能、为每个租户独立的网络环境
三种模式:
Flat 模式 网桥模式(所以配置手动配置)
Flat DHCP模式(在网关处配置了DHCP进程,辅助用户进行网络配置)
VLAN 模式(为每个用户分配不同的虚拟子网)
Ceilometer 监控
提供测量服务,收集云计算中不同的统计信息(计费与监控),openstack内部所有的事件监听并收集,为计费和监控及其他服务提供数据支撑
Trove 数据库管理
Sahara 数据分析
Heat 编排
类似k8s的控制器