9. 组件和框架简介

OPENSTACK组件介绍:

keystone

swift

glance

cinder

nova

neutron

swift 对象存储

glance 镜像管理

cinder 云硬盘管理 block存储

nova  计算服务管理

neutron 网络管理

glance里面是需要去keystone认证鉴权的,如下: 鉴权uri,用户,密码,以及租户名称:tenantname

其他的服务也需要到keystone来认证鉴权的。

openstack 框架介绍:

控制节点

网络节点

存储节点

计算节点

neutron是负责网络的,但是neutron这个组件里面包含了很多个服务

neutron-server 是控制节点运行的服务

neutron-dhcp,neutron-l3,neutron-metadata是网络节点的服务,neutron-ovs-agent是计算节点运行的服务

nova服务

openstack-nova-compute.service 是运行在计算节点的。

所有的这些组件想合法工作的话,必须和keystone进行注册。

AMQP: 高级消息队列协议

两种实现方式:rabbitmq和qpid

所有相关服务都需要连接到AMQP,使得服务之间可以通信,如果没有AMQP,它们之间是不能通信的。

Keystone功能介绍与认证实现流程

Keystone这个子项目为Openstack通过了Account、Authentication、Authorization服务——简称3A。在安装OpenStack Identityservice后,其他的OpenStack service必须要在Identity service中注册才能被使用。

Identity service功能列表:

身份认证(Authentication):令牌的发放和校验

用户授权(Authorization):授予用户在一个服务中所拥有的权限

用户管理(Account)

服务目录(Service Catalog):包含可用服务的API point

Keystone认证服务中的概念

User(用户):一个People or System orService在OpenStack中的数字表示。用于身份认证,也能够通过为登录到Openstack的用户分配令牌环,以此获得访问资源的权限。同一个用户可以被关联到给若干个租户,就像用户可以隶属于若干个不同的组。

Tenant(租户):一个资源或对象的抽象表示。租户可以包含多个用户,不同租户之间相互隔离。根据service运行的需求,租户可以映射为账户、组织、项目或服务。

Role(角色):可定制化的包含有特定用户权限的权限集合,可以关联到若干个User-Tenant对,来为User-Tenant对赋予权限。

Token(令牌):用于限定User-Tenant对进行OpenStack API和资源访问的字符串表示。一个临牌会持续一段时间有效,也可以随时撤销。

Credentials(凭证):用于确认用户身份的数据,例如:Username/Password

Authentication(检验):是确定用户身份的过程。

Service(服务):Openstack service,即Openstack中运行的组件服务。

Endpoint(端点):一个可以通过网络来访问和定位某个Openstackservice的地址,通常是一个URL。使用RESTful的设计思想,详见RESTful_URI资源 。

Keystone Client(Keystone CLI):Keystone的命令行工具,可以完成诸如创建用户,角色,服务和端点等绝大多数的Leystone管理功能,是非常常用的CLI接口。

简单来说

User 使用凭证(username/password) 到 keystone 验证并获得一个临时的 Token 和 Generic catalog(全局目录)

,临时的 Token 会存储在keystone-client(cache UUID locally) 和 keystone-backend 中。

User 使用这个临时 Token 发送给 keystone 并获得一个该 User 能访问的 Tenants 列表

User 再跟 keystone 发送一个请求,表明希望访问的 Tenants

keystone 就会向 User 发送一个管理这个 Tenants 的 Services 列表和允许访问这个 Tenants 的 Token (TenantsToken)

User 会通过这个 Services 和 Generic catalog(全局目录) 映射找到 Services 的 endpoint,并通过 endpoint 找到实际 Services 组件的位置

然后 User 再拿着 Tenant Token 和 endpoint 来访问实际上的 Service 组件

Service 组件会拿着这个 User-Tennat Token 对到 keystone 做进一步的验证(Openstack 要保证每一步操作都是安全的)

如果通过了 7. 的验证的话,keystone 会返回一系列的确认信息和附加信息(User 希望操作的内容)给 Services

最后 Services 执行一系列的操作

猜你喜欢

转载自blog.csdn.net/u011446736/article/details/81035195