部署OpenStack(其二,Keystone的部署。图文详情!)
文章目录
一、Keystone介绍
1、Keystone身份服务
openstack是一个SOA架构,各个项目独立提供先关的服务,且互不依赖,如nova提供计算服务,glance提供镜像服务等。而Keystone是openstack中的一个独立的安全认证的模块,也可以说是openstack框架的注册表。
- Keystone(OpenStack Identity Swrvice)是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证,令牌管理,提供访问资源的服务目录,以及基于用户脚色的访问控制。
- Keystone类似一个服务总线,或者说是整个OpenStack框架的注册表,其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用,需要经过Keystone的身份验证来获得目标服务的Endpoint来找到目标服
2、主要功能
- 身份认证(Authentication):令牌的发放和效验
- 用户授权(Authorization):授予用户在一个服务中所拥有权限
- 用户管理(Account):管理用户账户
- 服务目录(Service Catalog):提供可用服务的API端点
3、Keystone的管理对象
Users:表示API的一个特定使用者,属于一个指定的domain。可以赋予user权限(role),每一个user-domain或user-project都可以有一组权限。这里指使用Openstack service的用户。
Groups:表示一组拥有某权限的用户,属于一个指定的domain。可以赋予group特定的role,此时group内的user都自动具备该role表示的权限。
Credentials:与user关联的认证凭据。一个user可能有一个或多个credential,一个credential与某一个project关联。期户的用户名和密码或者是用户名和API密钥,或者身份管理服务提供的认证令牌。
Projects:在OpenStack中表示一组资源(也就Folsom版本的Tenants,Tenant概念在G版被废弃),一个project属于某一个domain。可以理解为一个人、或服务所拥有的资源集合。
Domains:表示一组projects和users的集合。每一个project或user只能属于一个domain,但user可以属于多个projects。domain有命名空间的概念,即在一个命名空间内的名称是否是全局唯一。
Roles:角色,表示一组在project或domain范围内允许的操作。
Services:表示一类服务。Openstack service,即Openstack中运行的组件服务。如nova、swift、glance、neutron、cinder等
Endpoints:通常表示服务的URL。一个可以通过网络来访问和定位某个Openstack service的地址。
Tokens:表示认证用户的标识,有认证服务生成。没有token的资源URL,token的使用是在X-Auth-Token和X-Subject-Token头部。是一个字符串表示,作为访问资源的令牌。Token包含了在指定范围和有效时间内,可以被访问的资源。
4、Keystone 认证流程
此图为虚拟机创建过程图
- 组件组件包括:user、keystone、nova、glance、neutron虚拟机创建必备组件,keystone全局认证完后,nova获取资源,nova通过调度算法将资源调度到裸金属上(调度算法:资源集合,根据算法或者打分机制,根据权重分配到后端最高的节点)
1)用户通过命令行或者horizon控制面板的方式登录openstack,凭借自己的证书(credentials)给keystone验证。