Configuring Services to work with Keystone

本文介绍如何配置Keystone身份认证服务以支持OpenStack各项服务。内容包括设置凭证、创建租户、用户及角色,定义服务目录以及配置中间件等关键步骤。

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

一旦keystone安装和运行好,服务需要配置好才能使用它。

为了完成这个,为了OpenStack service能够完成验证并和keystone进行交流,主要是安装和配置中间件。

一般而言:

        Client要访问服务就必须传递一个验证token

        keystone中间件将寻找和验证token,并做相对应的操作

       也可以从token中获取额外的信息,如user name,id,tenant name,id,roles等。

中间件将会以headers的形式传递这些信息给服务,更多关于中间件的说明请参考 middlewarearchitecture(http://docs.openstack.org/developer/keystone/middlewarearchitecture.rst)

Setting up credentials

1. Admin Token

    在你能使用REST API之前,你需要定义一个验证token,这个可以在keystone.conf文件的[DEFAULT]参数里设置,例如下面:

        [DEFAULT]

        admin_token = ADMIN

这个token是keystone和其他openstack services之间的一个“shared secret”,这个token经常被使用来创建tenants,users,roles等。

2. Setting up tenants,users,and roles

你至少需要定义一个tenant,user,role来进行服务的验证。

Setting up services

1. Creating Service Users

为了配置OpenStack,需要为所有services创建一个tenant,并为每个service创建users,然后给这些users授予Admin角色。

为services创建一个tenant:

    keystone tenant-create --name=service

会返回一个UUID,保存这个UUID,当你创建users和授予权限的时候需要使用到它。

为nova,glance,swift和neutron创建service users:

keystone user-create --name=nova --pass=Sekr3tPass --tenant_id =[the uuid of the tenant] --email=nova@noting.com

然后是为每一个users授予tenant的Admin权限。

eg:

keystone user-role-add –tenant_id=[uuid of the service tenant]
–user=[uuid of the service account] –role=[uuid of the Admin role]
2. Defining Services

keystone支持两种服务的定义,一个是catalog template,所有的细节都放在template。

另一种就是以SQL为后端定义catalog service,这样的话你需要添加services为catalog:

keystone service-create --name=nova \
                               --type=compute \
                               --description="Nova Compute Service"
keystone service-create --name=ec2 \
                               --type=ec2 \
                               --description="EC2 Compatibility Layer"
keystone service-create --name=glance \
                               --type=image \
                               --description="Glance Image Service"
keystone service-create --name=keystone \
                               --type=identity \
                               --description="Keystone Identity Service"
keystone service-create --name=swift \
                               --type=object-store \
                               --description="Swift Service"

Setting Up Middleware

keystone的auth_token中间件是一个WSGI组件,这个组件能够被插入到WSGI pipeline来控制keystone的token验证。

1. Configuring NOva to use Keystone

当配额之Nova的时候,非常重要的是为这个service创建一个admin service token。

as the key‘admin_token’ in Nova’s api-paste.ini [filter:authtoken] section or innova.conf [keystone_authtoken] section.

2. Configuring Swift to use Keystone

这个主要牵涉到Swift的overview_auth文档

3. Auth-Token Middleware with Username and Password

    也可以使用admin_user和admin_password选项来配置keystone的auth_token中间件。

当你使用“admin_user”和“admin_password”选项的时候“admin_token"参数是可填可不填写的。



### 部署 JupyterHub 到 Kubernetes 的指南 为了从零开始部署 JupyterHub 到 Kubernetes,可以遵循以下方法和工具组合来实现完整的配置过程。 #### 使用 Helm 和 Zero to JupyterHub 官方项目 官方推荐的方式是通过 **Zero to JupyterHub** 项目[^1]。这是一个专门为简化 JupyterHub 在 Kubernetes 上的安装而设计的开源解决方案。它提供了详细的文档以及预定义的 Helm Chart 来帮助用户快速上手。 以下是具体的关键点: - **Helm Chart**: 这是一个用于管理 Kubernetes 应用程序的标准包管理器。可以通过运行简单的命令完成复杂的资源配置。 ```bash helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/ helm repo update ``` - **Configuring the Deployment**: 用户需要创建一个 YAML 文件来自定义环境设置,比如存储卷、镜像版本、资源限制等参数。例如,在 `config.yaml` 中指定节点选择器或者持久化存储选项。 ```yaml proxy: secretToken: "<generated-secret>" singleuser: image: name: "your-docker-repo/jupyter-singleuser" tag: "latest" storage: type: pvc dynamic: storageClass: standard ``` - **执行安装脚本**: 当所有的前置条件准备好之后,就可以启动实际的安装流程了。 ```bash helm install --name my-jupyterhub \ --namespace jhub \ -f config.yaml \ jupyterhub/jupyterhub ``` 此操作会依据所给定的配置文件自动构建整个集群架构并使其可用。 #### 关键组件解释 - **Proxy (Traefik/Nginx)**: 负责外部流量接入与内部服务路由匹配的任务。 - **Hub Service**: 主要负责协调多个用户的 Notebook Server 生命周期管理工作。 - **SingleUser Servers**: 每位登录者都会获得独立隔离的工作空间实例。 #### 故障排查技巧 如果遇到任何问题,则应该查看 Pod 日志以获取更多信息: ```bash kubectl logs <pod-name> -n jhub ``` 同时也可以利用 kubectl describe 命令进一步诊断状态异常的原因。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值