学习openstack的系列文章-keystone

  • openstack 架构
  • Keystone 基本概念
  • Keystone 工作流程
  • Keystone Troubleshooting

1.  openstack 架构

2.  keystone 基本概念

  • User: 指代任何使用 openstack 的实体,可以是真正的用户,其他系统或者服务;
  • Credentials : User 用来证明自己身份的信息,可以是 用户名/密码 , Token, API Key 等;
  • Authentication: 认证,Keystone 验证 User 身份的过程;
  • Token: 由数字和字母组成的字符串,User 成功 Authentication 后,由 Keystone 分配给 User;
  • Project : 用于将 openstack 的资源(计算、存储和网络)进行分组和隔离;
  • Service: 包括Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift) 、 Image Service (Glance)、Networking Service (Neutron) 等;
  • Endpoint: 每个 Service 都会提供若干个 Endpoint, User 通过 Endpoint 访问资源和执行操作, Endpoint 是一个网络上可访问的地址,通常是 URL 。命令 openstack catalog list 可查看各Service 的 Endpoint:

  • Role:Keystone 借助 Role 来实现 Authorization (鉴权)的,所谓 Authorization 即解决的是“你能干什么?”的问题,Keystone 定义 Role:

  可以为 User 分配一个或多个 Role: Horizon Indentity -> Project -> Manage Members

  Service 决定每个 Role 能做什么事情,每个Service 通过各自的 policy.json 文件对 Role 进行访问控制,Neutron 服务 /etc/neutron/policy.json 文件的示例:

3. Keystone 工作流程

3.1 登录

openstack dashboard 中输入用户名/密码 , Keystone 验证返回 Token。

3.2 显示操作界面

顶部显示 admin 可访问的  Project 为 “admin” 和 “demo”,其实在此之前发生了一些事情:

同时在 dashboard 中可以访问 Image、Network等各个服务,这是因为 admin 已经从 Keystone 拿到了各 Service 的 Endpoints:

3.3 显示 image 列表

单击 “Images” 会显示 image 列表,这一过程背后发生了一些事:

  1. admin 将请求发送到 Glance 的 Endpoint:

  2. Glance 向 Keystone 询问 admin 身份的有效性:

  3. Glance 查看 /etc/glance/policy.json,判断 admin 是否有查看 image 的权限,权限判定通过,Glance 将 image 列表发给 admin:

4. Keystone Troubleshooting

openstack 排查问题的方法主要通过日志。 Keystone 的日志保存在 /var/log/keystone 目录下:

openstack 的日志格式: <时间戳><日志等级><代码模块><Request ID><日志内容><源代码位置>

时间戳:日志记录的时间,包括 年 月 日 时 分 秒 毫秒;

日志等级: INFO WARNING ERROR DEBUG等;

代码模块: 当前运行的模块Request ID 日志会记录连续不同的操作,为了便于区分和增加可读性,每个操作都被分配唯一的Request ID,便于查找;

日志内容: 日志的主体,记录当前正在执行的操作和结果等重要信息;

源代码位置: 日志代码的位置,包括方法名称,源代码文件的目录位置和行号;

上述 log 的意思是 GET 、POST 请求 endpoint 的 token, 具体分析见这篇博文 。

参考文章:

http://www.cnblogs.com/linhaifeng/p/6266327.html

https://www.cnblogs.com/CloudMan6/p/5373311.html

openstack系列文章(二)的更多相关文章

  1. openstack系列文章(1)devstack安装测试Queens

    1.在OpenStack 圈子中,有这么一句名言:”不要让朋友在生产环境中运行DevStack.但是初学者在没有掌握OpenStack CLI的情况下用devstack安装测试环境还是不错的.本系列文 ...

  2. openstack系列文章(四)

    学习 openstack 的系列文章 - Nova Nova 基本概念 Nova 架构 openstack Log Nova 组件介绍 Nova 操作介绍 1. Nova 基本概念 Nova 是 op ...

  3. openstack系列文章(一)

    学习openstack的系列文章-虚拟化 虚拟化 KVM CPU 虚拟化 KVM 内存虚拟化 全虚拟化 I/O 设备 半虚拟化 I/O 设备 I/O PCI PCIe 设备直接分配 SR-IOV 在 ...

  4. openstack系列文章(三)

    学习openstack的系列文章-glance glance 基本概念 glance 架构 openstack CLI Troubleshooting 1. glance 基本概念 在 opensta ...

  5. Redis变慢?深入浅出Redis性能诊断系列文章(二)

    (本文首发于"数据库架构师"公号,订阅"数据库架构师"公号,一起学习数据库技术) 本篇为Redis性能问题诊断系列的第二篇,本文主要从应用发起的典型命令使用上进 ...

  6. .NET性能系列文章二:Newtonsoft.Json vs. System.Text.Json

    微软终于追上了? 图片来自 Glenn Carstens-Peters Unsplash 欢迎来到.NET性能系列的另一章.这个系列的特点是对.NET世界中许多不同的主题进行研究.基准和比较.正如标题 ...

  7. NHibernate系列文章二十八:NHibernate Mapping之Auto Mapping(附程序下载)

    摘要 上一篇文章介绍了Fluent NHibernate基础知识.但是,Fluent NHibernate提供了一种更方便的Mapping方法称为Auto Mapping.只需在代码中定义一些Conv ...

  8. NHibernate系列文章二十七:NHibernate Mapping之Fluent Mapping基础(附程序下载)

    摘要 从这一节起,介绍NHibernate Mapping的内容.前面文章都是使用的NHibernate XML Mapping.NHibernate XML Mapping是NHibernate最早 ...

  9. NHibernate系列文章二十五:NHibernate查询之Query Over查询(附程序下载)

    摘要 这一篇文章介绍在NHibernate 3.2里引入的Query Over查询,Query Over查询跟Criteria查询类似.首先创建IQueryOver对象,然后通过调用该对象的API函数 ...

随机推荐

  1. OSM

    一.OSM是什么 开放街道图(OpenStreetMap,简称OSM)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图(wiki:http://wiki.openstreetm ...

  2. 4719: [Noip2016]天天爱跑步

    Time Limit: 40 Sec Memory Limit: 512 MB Submit: 1986 Solved: 752 [Submit][Status][Discuss] Descripti ...

  3. Day16 IO流

    流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. Ja ...

  4. 集合之Iterator

    迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...

  5. flink 常见问题整理

    1. xml-apis 冲突问题 javax.xml.parsers.FactoryConfigurationError: Provider for class javax.xml.parsers.D ...

  6. LOOP AT GROUP语法熟悉

    SELECT * FROM EKKO INTO TABLE @DATA(LT_EKKO) UP TO 100 ROWS. SORT LT_EKKO BY LIFNR ERNAM. LOOP AT LT ...

  7. 2017-2018-1 20155209 实现mypwd

    2017-2018-1 20155209 实现mypwd 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 首先使用 ...

  8. Linux下开发python django程序(Form表单对象创建和使用)

    1.在setting.py文件中修改节点,注释掉其中一行 MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'dj ...

  9. python基础学习2-easygui框架编程

    #!/usr/bin/env python # -*- coding:utf-8 -*- import easygui as g #导入方式一 #导入方式2 #from easygui import ...

  10. Python 学习计划

    时间分为4周,全部自学,仅提供大纲.适用于Web方向: 1.Week1:读完<简明Python教程>,适应Python开发环境 2.Week2:写个爬虫,需要深入了解re.urllib2. ...