设为首页 收藏本站
查看: 1238|回复: 0

[经验分享] openstack学习心得:keystone 架构、概念、访问流程

[复制链接]

尚未签到

发表于 2017-12-5 06:25:23 | 显示全部楼层 |阅读模式
1.keystone 介绍及其组成
OpenStack Identity 服务提供了一个单一的功能集合,包括管理认证,授权和服务目录。
Identity 服务通常作为和用户第一个交互的服务。一旦认证成功,终端用户就可以使用它们的身份去访问其他OpenStack服务。比如,其他服务利用Identity 来确保用户的真实性并且可以来发现其他服务在部署中的位置。Identity 服务也可以集成其他外置的用户管理系统(比如 LDAP)

用户和服务能够通过服务目录(被Identity 管理)定位其他服务。顾名思义,服务目录就是在整个OpenStack部署中可用的服务的集合。每一个服务可以有一个或者多个终端,每个终端都有一个类型,总共三种类型:admin,internal,public。在生产环境中,处于安全考虑,不同终端类型可能出在独立的网络中暴露给不同类型的用户。比如,public API的网络应该从Internet可以看见,这样用户就可以管理他们自己的云。admin API 的网络应该局限于组织内部来管理云平台基础架构。同时,OpenStack支持多区域的拓展性。区域,服务,端点共同形成了部署的服务目录。

Identity 服务包含三个部分:
Server: 一个集中服务端提供认证和授权服务,使用RESTful 接口
Drivers:驱动或者服务后端被集成到中心服务端。他们被用来访问存在OpenStack外部或者已经部署到OpenStack中的仓库中,比如关系数据库。
Modules:中间件模块运行在OpenStack使用Identity服务的组件的地址空间。这些模块拦截服务请求,提取用户身份,并把这些信息发送到中心服务端去授权。中间件和各个OpenStack组件使用WSGI来通信。

2.  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
       该术语可以简单的理解为用户和密码。
       该文的理解,通俗的说:
  如果把宾馆比作为Tenant,住宿的人就是User ,而宾馆就是 Tenant,宾馆可以提供多种诸如住宿、娱乐、饮食等多种服务(Service),具体来说,住宿是一种具体的服务(Endpoint)。就住宿而言,有普通间和总统套房,如果你的VIP等级(Role)高,你可以享受到豪华的总统套房。入住前,我们需要拿身份证开房(Credential),认证身份证不是冒牌货后(Authenticaiton),会给你一个房卡(Token),然后你拿着房卡,就可以进入房间和享受各种服务。

User

住宾馆的人

Credentials

身份证

Authentication

认证你的身份证

Token

房卡

Tenant

宾馆

Service

宾馆可以提供的服务类别,比如,饮食类,娱乐类

Endpoint

具体的一种服务,比如吃烧烤,打羽毛球

Role

VIP 等级,VIP越高,享有越高的权限


3.  keystone 的访问流程
以创建一个虚拟机(server)为例,结合下图简述下keystone在openstack的访问流程。

  • 用户Alice通过自己的户名和密码向keystone申请token,keystone认证用户名和密码后,返回token1
  • Alice通过token1发送keystone查询他所拥有的租户,keystone验证token1成功后,返回Alice的所有Tenant
  • Alice选择一个租户,通过用户名和密码申请token,keystone认证用户名、密码、tenant后,返回token2。(其实1、2步仅仅是为了查询tenant,如果已经知道tenant,可以忽略1、2步)
  • Alice通过token2发送创建server的请求,keystone验证token2(包括该token是否有效,是否有权限创建虚拟机等)成功后,然后再把请求下发到nova,最终创建虚拟机

DSC0000.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-420651-1-1.html 上篇帖子: #openstack故障处理汇总 下篇帖子: 怎样将OpenStack部署到Hadoop
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表