Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据

Openstack组件——Keystone解析

一、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

上一篇: idea添加golang插件(一软多用)-小白实操记录

下一篇: 阿里云官网更新后的镜像加速地址如何查看

精华推荐