Openstack学习
Openstack有什么用?
Openstack可以提供计算服务、存储服务、网络服务。这些资源使用需要权限的控制,需要计费功能。
Openstack项目有哪些组成?
Openstack核心项目
Openstack架构
Nova-计算服务
(1)实例生命周期管理
(2)提供基于REST API
(3)Hypervisor屏蔽,支持KVM、Ken、Hyper-v,docker
(4)支持大规模水平伸缩
Neturon-网络服务
(1)虚拟网路管理
(2)面向租户的网络管理(SDN)
(3)高度可配置的plug-in架构
(4)基于REST的API
Keystone-身份认证服务
(1)认证与授权
(2)用户,租户和角色管理
(3)服务目录管理
(4)支持多认证机制(Mysql,Ladp,AD)
Glance-镜像服务
(1)镜像注册、查询
(2)基于角色的访问控制
(3)支持多格式的镜像(raw,qcow2)
(4)支持多种后端存储(S3,Swift,File system)
Horizon-控制面板服务
用户自助管理界面
Cinder-块存储服务
(1)提供类似EBS(弹性)的块存储
(2)减少Nova的复杂性,降低Nova的负载
(3)支持多种后端存储
Swift-对象存储服务
(1)可靠对象存储
(2)没有容器限制
(3)无单点故障
(4)支持S3 API
Heat-编排服务
(1)模板定义环境
(2)云资源拓扑与编排服务
(3)兼容AWS CloudFormation
Ceilometer-计量服务
资源监控与度量
流行的部署模式
Openstack基本概念
用户:用于身份验证,一个用户可以属于多个租户
租户:相当于一个用户组的概念,一个租户包含多个用户
角色:系统权限集合的概念,一般默认有admin和member
什么是Keystone?
Keystone是Openstack的组件之一,用于为Openstack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌发放和校验、服务列表、用户权限定义等。
Keystione在Openstack中的结构图
Keystone基本概念
用户(User):用于身份验证,一个用户可以关联到多个租户
租户(Tenant):相当于用户组的概念。一个租户可以容纳多个用户
角色(Role):关联到“用户-租户对”的元数据。可以关联到多个“用户-租户对”
令牌(Token):用于验证用户或者“用户-租户对”的请求是否合法
服务(Service):服务类型和名称
端点(Endpoint):服务的实例(URL入口)
用户-角色-服务交互关系
Keystone基本架构图
Keystone验证流程
创建虚拟机流程
创建虚拟机keystone认证流程
(1)用户向keystone发送用户名和密码,通过验证后,keystone会返回一个临时token和一个service catalog的列表
(2)用户用这个临时token向catalog列表中keystone的endpoint请求用户对应的tenant(租户)信息,keystone验证token通过后会返回用户对应的tenant(租户)列表。
(3)用户从列表中选取tenant(租户),再次向keystone请求,keystone验证通过后,返回与该tenant(租户)相关的catalog(目录)信息和token。
(4)用户用该token以及tenant/user信息向catalog中的nova服务器端点请求开启虚拟机服务。nova向keystone请求验证:a.token是否合法?b.这个租户/用户是否有权限来向nova请求服务?
(5)keystone返回给nova:a、租户-用户具备访问nova的权限。b、token合法。c、token属于该租户-用户。
(6)nova根据自己的规则判断用户的是否具备开机虚拟机的权限。如果具备,启动虚拟机。并向用户报告状态。