OpenStack T版—Keystone组件部署

本文详细介绍了OpenStack中的Keystone组件,作为OpenStack的身份服务,Keystone负责用户身份认证、令牌管理和服务目录,提供访问控制。文章详细阐述了Keystone的主要功能、管理对象,包括身份认证、用户授权、用户管理和服务目录,并解析了Keystone的认证流程。此外,还详细讲解了Keystone的部署步骤,从创建数据库实例和用户,到安装、配置Keystone、数据库和Apache,再到创建OpenStack的域、项目、用户和角色。文章最后总结了Keystone的重要性,并提出了手动部署OpenStack的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Keystone身份服务

■ Keystone (OpenStack ldentity Service)是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证、令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制
解读:
基本职能:身份认证、令牌管理、指引路径、访问控制

■ Keystone类似一个服务总线,或者 说是整个Openstack框架的注册表,其他服务通过keystone来注册其服务的Endpoint (服务访问的URL),任何服务之间相互的调用,需要经过Keystone的身份验证, 来获得 目标服务的Endpoint来找到目标服务
解读:
keystone在已经过身份验证/权限认证的前提下,提供路径指引服务

1.1、主要功能

● 身份认证(Authentication) : 令牌的发放和校验
解读:
授权,权限管理相关(令牌的发放,管理,校验和认证)

● 用户授权(Authorization) :授予用户在一个服务中所拥有权限
解读:
控制用户可以使用的权限范围和使用期限

● 用户管理(Account) :管理用户账户

● 服务目录(Service Catalog) :提供可用服务的API端点
解读:
授权,鉴权通过后,提供所需调用/使用服务对应的api(URL)的路径,也就是具体的位置

1.2、管理对象

Role:用于划分权限。通过给User指定Role, 使User获得Role对应操作权限

Endpoint:端点,api的位置,一个可以通过网络来访问和定位某个
Openstack service的地址,通常是一个URL
解读:
因为是通过API的方式进行对接,在OpenStack中,api是由apache作为承载,而apache提供了一个web页面,这个web页面就是具体的url

Service:服务,Openstack service,即Openstack中运行的组件服务。如nova、swift、glance、 neutron、 cinder等

Project(Tenant):可以理解为一个人(自己创建项目)、或服务所拥有的资源集合

Token: 是一个字符串表示,作为访问资源的令牌。Token包含了在指定范围和有效时间内,可以被访问的资源

Authentication:确定用户身份的过程

Credentials:用于确认用户身份的凭证。用户的用户名和密码,或者是用户名和API密钥,或者身份管理服务提供的认证令牌

User:用户,指使用Openstack service(全局组件、核心组件、其他组件)的用户

小结:说明keystone管理的对象时多元化的

1.3、keystone认证流程图

在这里插入图片描述

通过创建虚拟机为场景介绍工作流程:

1、用户可以通过命令行(令牌、密钥—>API密钥)或者控制台(账号密码)登录到OpenStack的内部
2、keystone会对用户登录进行验证,成功后会给用户token(使用服务的权限范围和有效期 )/endpoint(具体的api地址/控制台的UI界面)
3、持有keystone颁发的token/endpoint向nova的api发送申请创建虚拟机的请求
4、nova接受到user的token和请求之后,会拿着user的token向keystone认证,看token是否可用
5、keystone认证成功后,nova会持有token(调用镜像资源的权限合法性)Image(镜像对应的属性和规格)向glance提出创建虚拟机所需的镜像请求
注:glance作为镜像管理服务包含了镜像本身和镜像的一些元数据信息
6、glance会拿着nova给的token向keystone认证,查看是否可用,keystone返回认证成功后,glance分发任务给自己的子功能模块处理nova的请求,然后再把Image(镜像本身,与之前nova持有的Image有区别)给予nova
7、nova收到Image资源后,继续持有token(调用网络资源的权限合法性)network(网络资源的技术和网络资源)向neutron提出创建虚拟机所需的网络请求
8、neutron会拿着nova给的token向keystone认证,看是否可用,keystone返回认证成功后,neutron调用内部的子功能模块,收集资源提供给nova
9、nova收集到创建虚拟机的资源后,开始进行创建虚拟机,创建成功后返回信息(虚拟机创建成功的信息)给user
注: 只有在创建成功或者失败后才会返回信息

总结:
1、keystone在创建虚拟机的过程中,对用户及其他组件之间的交互进行认证
2、keystone会颁发令牌并且进行校验

1.4、运维常规命令

1.4.1、配置文件和日志文件

■ 配置文件和日志文件一般部署在控制节点上

■ 配置文件

/etc/keystone/keystone.conf
/etc/httpd/conf.d/wsgi-keystone.conf

■ 日志文件

/var/log/keystone/keystone.log
/var/log/httpd/keystone-access.log
/var/log/httpd/keystone-error.log

1.4.2、进行和服务

■ keystone通过httpd对外提供服务

■ 查看keystone服务状态

systemctl is-active httpd      ###期待返回结果如下: active

■ 启动/关闭/重启keystone服务

systemctl start/stop/restart httpd

■ 确认keystone后台进程进程是否存在

ps -aux lgrep keystone
keystone 1100 26269 0 Jul29 ?   00:48:26 (wsgi:keystone- -DFOREGROUND
keystone 1101 
学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法(二) 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较
学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法(二) 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值