• openstack系列文章(二)


    学习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

  • 相关阅读:
    模板元编程实现素数判定
    JDBC开发
    4.9 当相应行存在时更新
    QT5中如何使用QFtp类(这个类虽然没有被收录,但一直在更新)
    gcc和g++的区别
    Awesome C/C++(图像部分)
    Ubuntu更新源
    GO的GDB调试
    内核探测工具systemtap简介
    列举一下项目中使用的产品和技术
  • 原文地址:https://www.cnblogs.com/xingzheanan/p/9747638.html
Copyright © 2020-2023  润新知