OpenShift 4 - 管理和使用 OpenShift AI 运行环境

news2024/12/26 0:15:39

《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在 OpenShift 4.14 + RHODS 2.50 的环境中验证

文章目录

  • 启停 Notebook Server
    • 启动
    • 停止
  • Notebook 镜像
    • Notebook Image 和 ImageStream
    • 使用定制的 Notebook Image
  • 定制服务器的运行配置
  • 应用和项目
  • 用户和访问权限
  • 参考

启停 Notebook Server

RHOAI 使用 StatefulSet 来运行 Applications > Enabled 中的 Jupyter 环境,该 StatefulSet 和其他相关资源全部运行在 rhods-notebook 项目中。

启动

  1. 登录 RHOAI 控制台,然后进入 Applications > Enabled,再点击 Jupyter 下方的 Launch application 链接。
    在这里插入图片描述
  2. 在 Start a notebook server 页面选中一个 Notebook 使用的镜像以及其他选项,然后点击 Start server 按钮。
    在这里插入图片描述
  3. 在下图的 Starting server 窗口点击任意按钮即可转到登录页面,然后使用可用用户登录 Jupyter Notebook 即可。在这里插入图片描述
  4. 此时在 rhods-notebooks 项目中会运行名为 jupter-nb-user1 的 StatefulSet 和对应的资源。
$ oc get all -n rhods-notebooks
Warning: apps.openshift.io/v1 DeploymentConfig is deprecated in v4.14+, unavailable in v4.10000+
NAME                     READY   STATUS    RESTARTS   AGE
pod/jupyter-nb-user1-0   2/2     Running   0          14m

NAME                           TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/jupyter-nb-user1       ClusterIP   172.31.145.240   <none>        80/TCP    14m
service/jupyter-nb-user1-tls   ClusterIP   172.31.157.129   <none>        443/TCP   14m

NAME                                READY   AGE
statefulset.apps/jupyter-nb-user1   1/1     14m

NAME                                        HOST/PORT                                                                        PATH   SERVICES               PORT          TERMINATION          WILDCARD
route.route.openshift.io/jupyter-nb-user1   jupyter-nb-user1-rhods-notebooks.apps.cluster-4gwc7.dynamic.redhatworkshops.io          jupyter-nb-user1-tls   oauth-proxy   reencrypt/Redirect   None

$ oc get pvc -n rhods-notebooks
NAME                      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                           AGE
jupyterhub-nb-user1-pvc   Bound    pvc-379c22b3-ddc8-4c7c-b6ae-59311f2a1383   20Gi       RWO            ocs-external-storagecluster-ceph-rbd   41m

在这里插入图片描述

停止

  1. 在 Jupyter Notebook 页面中选择 File > Hub Control Panel 菜单。
    在这里插入图片描述
  2. 此时会跳转到 RHOAI 控制台,点击 Stop notebook server 即可停止运行。
    在这里插入图片描述
  3. 运行命令,确认在 StatefulSet 中已经没有运行的 Pod 了。
$ oc get statefulset -n rhods-notebooks
NAME               READY   AGE
jupyter-nb-user1   0/0     16m

Notebook 镜像

在 RHOAI 中是通过容器运行 Jupyter notebook 的。可以在 RHOAI 控制台中看到缺省提供的容器镜像类型,它们包括:Minimal Python、Standard Data Science、CUDA、Pytorch、TensorFlow、HabanaAI、TrustAI。另外用户也可以使用自己定制的容器镜像。
注意:每个镜像包含的预安装包见详细说明。

Notebook Image 和 ImageStream

在创建 Jupyter notebook server 的界面中需要我们选择所使用的镜像。这些镜像是通过 redhat-ods-applications 项目中的 ImageStream 被访问到的。

  1. 执行命令,可以查看到 redhat-ods-applications 项目中的 ImageStream。
$ oc get is -n redhat-ods-applications
NAME                                IMAGE REPOSITORY                                                                                             TAGS                UPDATED
habana-notebook                     image-registry.openshift-image-registry.svc:5000/redhat-ods-applications/habana-notebook                     2023.2              9 minutes ago
minimal-gpu                         image-registry.openshift-image-registry.svc:5000/redhat-ods-applications/minimal-gpu                         1.2,2023.1,2023.2   9 minutes ago
odh-trustyai-notebook               image-registry.openshift-image-registry.svc:5000/redhat-ods-applications/odh-trustyai-notebook               2023.1,2023.2       9 minutes ago
pytorch                             image-registry.openshift-image-registry.svc:5000/redhat-ods-applications/pytorch                             1.2,2023.1,2023.2   9 minutes ago
s2i-generic-data-science-notebook   image-registry.openshift-image-registry.svc:5000/redhat-ods-applications/s2i-generic-data-science-notebook   1.2,2023.1,2023.2   9 minutes ago
s2i-minimal-notebook                image-registry.openshift-image-registry.svc:5000/redhat-ods-applications/s2i-minimal-notebook                1.2,2023.1,2023.2   9 minutes ago
tensorflow                          image-registry.openshift-image-registry.svc:5000/redhat-ods-applications/tensorflow                          1.2,2023.1,2023.2   9 minutes ago
  1. 查看名为 tensorflow 的 ImageStream,注意:Image 的相关信息都保存在 annotations 中,例如:软件版本、python 依赖软件版本等。
$ oc get is -n redhat-ods-applications tensorflow -ojsonpath={.spec.tags[2]} | jq
{
  "annotations": {
    "opendatahub.io/notebook-build-commit": "d0ce8b0",
    "opendatahub.io/notebook-python-dependencies": "[{\"name\":\"TensorFlow\",\"version\":\"2.13\"},{\"name\":\"Tensorboard\",\"version\":\"2.13\"}, {\"name\":\"Boto3\",\"version\":\"1.28\"},{\"name\":\"Kafka-Python\",\"version\":\"2.0\"},{\"name\":\"Kfp-tekton\",\"version\":\"1.5\"},{\"name\":\"Matplotlib\",\"version\":\"3.6\"},{\"name\":\"Numpy\",\"version\":\"1.24\"},{\"name\":\"Pandas\",\"version\":\"1.5\"},{\"name\":\"Scikit-learn\",\"version\":\"1.3\"},{\"name\":\"Scipy\",\"version\":\"1.11\"},{\"name\":\"Elyra\",\"version\":\"3.15\"},{\"name\":\"PyMongo\",\"version\":\"4.5\"},{\"name\":\"Pyodbc\",\"version\":\"4.0\"}, {\"name\":\"Codeflare-SDK\",\"version\":\"0.12\"}, {\"name\":\"Sklearn-onnx\",\"version\":\"1.15\"}, {\"name\":\"Psycopg\",\"version\":\"3.1\"}, {\"name\":\"MySQL Connector/Python\",\"version\":\"8.0\"}]",
    "opendatahub.io/notebook-software": "[{\"name\":\"CUDA\",\"version\":\"11.8\"},{\"name\":\"Python\",\"version\":\"v3.9\"},{\"name\":\"TensorFlow\",\"version\":\"2.13\"}]",
    "opendatahub.io/workbench-image-recommended": "true",
    "openshift.io/imported-from": "quay.io/modh/cuda-notebooks"
  },
  "from": {
    "kind": "DockerImage",
    "name": "quay.io/modh/cuda-notebooks@sha256:59d571d0d245c050eb9f79de5c3c40517a575d8fdfb41385a324ee45a42b597b"
  },
  "generation": 2,
  "importPolicy": {
    "importMode": "Legacy"
  },
  "name": "2023.2",
  "referencePolicy": {
    "type": "Source"
  }
}

使用定制的 Notebook Image

  1. 使用管理员登录 OpenShift AI 的控制台,然后进入 Settings > Notebook image settings,
    在这里插入图片描述
  2. 在 Import notebook image 窗口中按下图配置定制的镜像,最后点击 Import。
    其中 Image localion 为 quay.io/opendatahub-contrib/workbench-images:jupyter-spark-ubi9-py39_2023a_latest
    在这里插入图片描述
  3. 完成后可以看到定制的 Notebook 镜像列表。
    在这里插入图片描述
  4. 此时再进入 Applications > Enabled 的 Notebook Server 界面,可以看到定制的镜像已经成为可选项。
    在这里插入图片描述

定制服务器的运行配置

  1. 进入 OpenShift 控制台的 API Explorer 页面,然后搜索 OdhDashboardConfig 类型对象,点击进入该对象。
    在这里插入图片描述
  2. 切换到 redhat-ods-applications 项目,在对象的实例列表中点击进入 odh-dashborad-config。
    在这里插入图片描述
  3. 在 YAML 中的 notebookSizes 部分就是运行 Notebook 服务器的几档配置。

应用和项目

在 RHOAI 控制台中每个有权限的用户都可在 Applications 中创建并运行一个 Notebook Server 环境。所有用户的 Notebook Server 都是以 StatefulSet 方式运行在 rhods-notebook 项目中。然而一个用户的多个 AI/ML 都在 Applications 中的这个 Notebook Server 环境中运行往往是不够的,因此用户可以在 Data Science Projects 中创建多个项目以运维不同的 AI/ML。

  1. 用一个一般用户登录 RHOAI 控制台,然后进入 Data Science Projects 菜单,再点击 Create data science project 按钮。
    在这里插入图片描述
  2. 在 Create data science project 窗口填写 Name 和 Resource name。
    在这里插入图片描述
  3. 在 Create workbench 页面中按照下图配置,然后点击 Create workbench 按钮。
    在这里插入图片描述
  4. 查看 Data Science Project 的详细信息,如下图。其中可以在 Data connection 中配置可用的 S3 对象存储,用来从外部向应用提供模型训练数据。
    在这里插入图片描述
  5. 当上图的 Status 为 Running 后,可以点击 Open 链接打开 Jupyter Notebook。另外还可以进入 OpenShift 控制台对应的项目,确认已经有运行的 StatefulSet 对象。
    在这里插入图片描述
  6. 当上图的 Status 为 Running 后,可以在对应的项目中看到对应 Workbench 的 StatefulSet 对象。

用户和访问权限

  1. 使用管理员登录 RHOAI 的控制台,然后进入 Settings > User management 页面。在下图中配置可以使用 RHOAI 的一般用户和管理员用户。默认 OpenShift 系统管理员可以管理 RHOAI,而所有登录用户都可访问 RHOAI 控制台。
    在这里插入图片描述
  2. 使用一般用户 user1 和 user2 分别登录 RHOAI 控制台,然后都在 Applications 中创建 Notebook Server。此时在管理员的管理视图中可以在 Applications > Enabled 中的 Administration 页面中看到 user1 和 user2 用户的 notebook 运行环境。
    在这里插入图片描述
  3. 确保先完成上一节 “应用和项目”,然后进入 ds-license-plate 项目的 Permissions,
    在这里插入图片描述
  4. 在 Users 中按下图增加一项,让 user2 可以管理 ds-license-plate 项目。
    在这里插入图片描述
  5. 用 user2 登录 RHOAI,确认该用户可以访问并管理 user1 创建的 ds-license-plate 项目。

参考

https://ai-on-openshift.io/odh-rhods/configuration/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1322439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式软件测试(黑盒测试)---三年嵌入式软件测试的理解

文章内容为本人这三年来在嵌入式软件测试&#xff08;黑盒&#xff09;上的一些积累吧&#xff0c;说起来也挺快的&#xff0c;毕业三年的时间就这样过去了&#xff0c;在两家公司工作过&#xff08;现在这家是第二家&#xff09;&#xff0c;这几年的测试项目基本都是围绕着嵌…

【java IO】|java NIO总结

在传统的 Java I/O 模型&#xff08;BIO&#xff09;中&#xff0c;I/O 操作是以阻塞的方式进行的。也就是说&#xff0c;当一个线程执行一个 I/O 操作时&#xff0c;它会被阻塞直到操作完成。这种阻塞模型在处理多个并发连接时可能会导致性能瓶颈&#xff0c;因为需要为每个连…

解决win10下强制设置web浏览器为microsoft edge的方法

目录 问题场景实现方法禁止edge默认选项设置默认浏览器 反思 问题场景 因为一些特殊的原因&#xff0c;我需要第二个浏览器&#xff0c;我的第一个浏览器是google的chrome浏览器&#xff0c;所以我选择的是windows的默认浏览器&#xff0c;就是microsoft edge浏览器&#xff0…

MYSQL中使用IN,在xml文件中怎么写?

MYSQL&#xff1a; Spring中&#xff1a; mysql中IN后边的集合&#xff0c;在后端中使用集合代替&#xff0c;其他的没有什么注意的&#xff0c;还需要了解foreach 语法即可。

AI抠图软件哪个好用?推荐这三款抠图工具给你

AI抠图软件哪个好用&#xff1f;你是否听说过AI抠图这个操作呢&#xff1f;简单来说&#xff0c;抠图就是一种对图像进行处理的技术&#xff0c;它的目的是将图片中的某些区域去除或者替换。比如&#xff0c;如果你有一张背景很杂乱的图片&#xff0c;你想把背景去掉&#xff0…

【Python炫酷系列】一闪一闪亮星星,漫天都是小星星(完整代码)

文章目录 环境需求完整代码详细分析系列文章环境需求 python3.11.4及以上版本PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)【注】 python环境搭建请见:https://want595.…

产品需求分析师的职责内容(合集)

产品需求分析师的职责内容1 职责&#xff1a; 1、根据公司战略规划&#xff0c;负责妇产科相关平台产品的中长期规划; 2、组织需求调研、收集、分析、整理、提炼、用户的需求&#xff0c;分析形成可行性研究报告; 3、深入挖掘产品需求&#xff0c;管理用户及公司内部业务需求&a…

深度卷积神经网络的剪枝方法

深度学习领域的一种剪枝技术是“网络瘦身&#xff08;Network Slimming&#xff09;”&#xff0c;这是一种旨在深度卷积神经网络&#xff08;CNN&#xff09;中实现通道级稀疏性的简单方案。该技术利用批量归一化中的放缩层来有效识别并修剪网络中不重要的通道。本文将详细介绍…

查看CPU的型号方法很多,而且步骤简单

每台计算机至少包含一个处理器&#xff0c;也称为CPU或中央处理单元。你电脑的CPU可能是由英特尔或AMD制造的。以下是如何查看你的CPU以及它的速度。 在设置应用程序中查找你的CPU 要在Windows 10或Windows 11设置应用程序中查找此信息&#xff0c;请导航到“设置”>“系统…

黑盒测试中关键截图如何打点

黑盒测试中关键截图如何打点Android黑盒测试过程中如何进行有效的打点是我们经常遇到的问题&#xff0c;我们一般会在脚本内部进行数据打点&#xff0c;也可以使用其他进程录屏或截图。那我们如何选取合适的方式进行打点记录呢&#xff1f;下图是对常用打点方式的统计&#xff…

全链路压力测试:解析其主要特点

随着信息技术的飞速发展和云计算的普及&#xff0c;全链路压力测试作为一种关键的质量保障手段&#xff0c;在软件开发和系统部署中扮演着至关重要的角色。全链路压力测试以模拟真实生产环境的压力和负载&#xff0c;对整个业务流程进行全面测试&#xff0c;具有以下主要特点&a…

openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表

文章目录 openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表164.1 操作场景164.2 查询错误信息164.3 处理数据导入错误 openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-…

鸿蒙(HarmonyOS)应用开发—— video组件实操

video 组件 harmonyOS 系统提供了基础的video。下面就直接上代码 原始video 新建项目 customVideo项目 本地视频 网络地址&#xff0c;就不用说明&#xff0c;只需要把地址换成网络地址即可 在resource 文件夹下的rawfile文件夹下 添加视频 在index.ets Video({src:$rawf…

C++数据结构——二叉搜索树详解

目录 一&#xff0c;关于二叉搜索树 1.1 概念 1.2 基本结构 二&#xff0c;二叉搜索树接口实现 2.1 插入 2.2 查找 2.3 打印 2.4* 删除 三&#xff0c;二叉搜索树接口递归实现 3.1 查找 3.2 插入 3.3 删除 四&#xff0c;二叉搜索树的默认成员函数 五&#xff0c;…

一篇文章带你了解各个程序员接单平台,让你选择不再迷茫!!!

相信现在很多程序员都已经走上了或者准备走上网上接单这条路&#xff0c;但是目前市面上的接单平台可谓五花八门&#xff0c;对于各个平台的优缺点&#xff0c;不同的程序员该如何选择适合自己的接单平台&#xff0c;你又是否了解呢&#xff1f; 接下来就让小编用一篇文章来为…

定位咨询:企业市场竞争中的定海神针

什么是定位咨询?定位咨询能给企业带来什么帮助?在现代市场的激烈竞争中&#xff0c;定位咨询不仅是企业区分自己的重要工具&#xff0c;更是它们赢得市场份额的关键。以下是定位咨询的定义和几个核心方面&#xff0c;笔者将列举具体案例说明其重要性和实用性。 定位咨询的简单…

python接口自动化测试--requests使用和基本方法封装

之前学习了使用jmeterant做接口测试&#xff0c;并实现了接口的批量维护管理(大概500多条用例)&#xff0c;对“接口”以及“接口测试”有了一个基础了解&#xff0c;最近找了一些用python做接口测试的资料&#xff0c;一方面为了学习下如何使用python进行接口测试(如何做出一个…

券商期权手续费现在最低多少钱一张?怎么调低最方便

券商期权手续费是指您在证券公司开设期权账户并进行期权交易时&#xff0c;需要向券商支付的费用。券商期权手续费主要包括以下三个部分&#xff1a; 中国结算费用&#xff1a;这是中国证券登记结算有限责任公司向期权交易者收取的费用&#xff0c;固定为每张合约0.3元&#x…

GPT-4V with Emotion:A Zero-shot Benchmark forMultimodal Emotion Understanding

GPT-4V with Emotion:A Zero-shot Benchmark forMultimodal Emotion Understanding GPT-4V情感:多模态情感理解的zero-shot基准 1.摘要 最近&#xff0c;GPT-4视觉系统(GPT-4V)在各种多模态任务中表现出非凡的性能。然而&#xff0c;它在情感识别方面的功效仍然是个问题。本文定…

Crocoddyl: 多接触最优控制的高效多功能框架

系列文章目录 前言 我们介绍了 Crocoddyl&#xff08;Contact RObot COntrol by Differential DYnamic Library&#xff09;&#xff0c;这是一个专为高效多触点优化控制&#xff08;multi-contact optimal control&#xff09;而定制的开源框架。Crocoddyl 可高效计算给定预定…