Openstack组件——Keystone解析
日期: 2020-12-14 分类: 跨站数据 488次阅读
一、Keystone简介
Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务规则和服务令牌功能的模块。用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理。Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来获得目标服务的Endpoint来找到目标服务。
二、Keystone主要功能
1、身份认证:负责令牌的发放和校验
2、用户授权:授权用户有指定的可执行动作的范围
3、用户管理:管理用户的账户
4、服务目录:提供可用服务的API端点位置
三、Keystone基本概念
1). User
User可简单的理解为用户,用户携带信物(token)能够访问openstack各个服务和资源。
2). Tenant
Tenant即租户,早期版本又称为project,它是各个服务中的一些可以访问的资源集合。比如通过nova创建虚拟机时要指定到某个租户中,在cinder创建卷也要指定到某个租户中。用户访问租户的资源前,必须与该租户关联,并且指定该用户在该租户下的角色。
3). Role
Role即角色,可以理解为VIP等级,用户的Role越高,在openstack中能访问的服务和资源就更多。
4). Service
Service即服务,如Nova、Glance、Swift、heat、ceilometer等。Nova提供云计算的服务,Glance提供镜像管理服务,Swift提供对象存储服务,heat提供资源编排服务,ceilometer则是提供告警计费服务,cinder提供块存储服务。
5). Endpoint
Service的显得太抽象笼统。Endpoint则具体化Service。Endpoint翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint,而endpoint一般为url,我们知道了服务的url,我们就可以访问它。Endpoint
的url具有public、private和admin这三种权限。public url可以被全局访问,private
url只能被局域网访问,admin url被从常规的访问中分离。
6). Token
Token即是信物、令牌,用户通过用户名和密码获取在某个租户下的token,通过token,可以实现单点登录。
7) Credentials
该术语可以简单的理解为用户和密码。
三、Keystone访问流程
以创建一个虚拟机(server)为例,结合下图简述下keystone在openstack的访问流程。
1、用户通过命令行或者horizon控制面板的方式登录openstack,凭借自己的证书(credentials)给keystone验证。
2、Keystone对用户的证书验证,验证通过则会发布一个令牌(token)和用户所需服务的位置点(endpoint)给用户。
3、用户得到了位置点(endpoint)之后,携带自己的令牌,向nova发起请求,请求创建虚拟机。
nova会拿着用户的token向keystone进行认证,看是否允许用户执行这样的操作。
4、keystone认证通过之后,返回给nova,nova即开始执行创建虚拟机的请求。首先需要镜像资源,nova带着令牌(token)和所需要的镜像名向glance提出镜像资源的请求。
5、glance会拿着token去向keystone进行认证,看是否允许提供镜像服务。keystone认证成功后,返回给glance。glance向nova提供镜像服务。
6、创建虚拟机还需要网络服务,nova携带token向neutron发送网络服务的请求
7、neutron拿着nova给的token向keystone进行认证,看是否允许向其提供网络服务。keystone认证成功后,返回给nuetron。nuetron则给nova提供网络规划服务。
8、nova获取了镜像和网络之后,开始创建虚拟机,通过hypervisior可调用底层硬件资源进行创建。创建完成返回给用户,成功执行了用户的请求。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:openstack
精华推荐