第 4 章 已知问题
本节论述了 Red Hat OpenShift Data Science 中已知的问题,以及这些问题的已知方法。
RHODS-11791 - 升级后启用使用数据收集
如果您之前具有 Allow collection usage data
选项(即禁用),则在升级 OpenShift Data Science 时此选项将变为选择(启用)。
- 临时解决方案
手动重置
Allow collection usage data
选项。要做到这一点,请执行以下操作:在 OpenShift Data Science 仪表板中,在左侧菜单中点击 Settings
Cluster settings。 Cluster Settings 页面将打开。
-
在 Usage data collection 部分中,取消选择
Allow collection usage data
。 - 点 Save Changes。
DATA-SCIENCE-PIPELINES-OPERATOR-294 - Scheduled 管道运行(使用 data-passing)可能无法在步骤间传递数据,或者完全失败步骤
使用 S3 对象存储来存储管道工件的调度管道运行可能会失败,并显示以下错误:
Bad value for --endpoint-url "cp": scheme is missing. Must be of the form http://<hostname>/ or https://<hostname>/
出现这个问题的原因是 S3 对象存储端点没有成功传递给调度的管道运行的 pod。
- 临时解决方案
根据要传递的管道工件的大小,您可以通过应用自定义 artifact-passing 脚本,然后重启管道服务器来部分或完全解决这个问题。具体来说,这个临时解决方案会产生以下行为:
- 对于小于 3 KB 的管道工件,管道运行现在可以成功将工件传递给 S3 对象存储。
- 对于大于 3 KB 的管道工件,管道运行仍然 不会将 工件传递给 S3 对象存储。但是,临时解决方案可确保运行继续完成。管道运行的其余部分中的任何较小的工件都会被成功存储。
要应用这个临时解决方案,请执行以下操作:
在文本编辑器中,粘贴以下基于 YAML 的工件传递脚本。该脚本定义
ConfigMap
对象。apiVersion: v1 data: artifact_script: |- #!/usr/bin/env sh push_artifact() { workspace_dir=$(echo $(context.taskRun.name) | sed -e "s/$(context.pipeline.name)-//g") workspace_dest=/workspace/${workspace_dir}/artifacts/$(context.pipelineRun.name)/$(context.taskRun.name) artifact_name=$(basename $2) if [ -f "$workspace_dest/$artifact_name" ]; then echo sending to: ${workspace_dest}/${artifact_name} tar -cvzf $1.tgz -C ${workspace_dest} ${artifact_name} aws s3 --endpoint <Endpoint> cp $1.tgz s3://<Bucket>/artifacts/$PIPELINERUN/$PIPELINETASK/$1.tgz elif [ -f "$2" ]; then tar -cvzf $1.tgz -C $(dirname $2) ${artifact_name} aws s3 --endpoint <Endpoint> cp $1.tgz s3://<Bucket>/artifacts/$PIPELINERUN/$PIPELINETASK/$1.tgz else echo "$2 file does not exist. Skip artifact tracking for $1" fi } push_log() { cat /var/log/containers/$PODNAME*$NAMESPACE*step-main*.log > step-main.log push_artifact main-log step-main.log } strip_eof() { if [ -f "$2" ]; then awk 'NF' $2 | head -c -1 > $1_temp_save && cp $1_temp_save $2 fi } kind: ConfigMap metadata: name: custom-script
- 在脚本中,将出现的任何 < Endpoint> 替换为您的 S3 端点(例如 https://s3.amazonaws.com),并将 < Bucket> 替换为您的 S3 存储桶名称。
-
保存
ConfigMap
对象的 YAML 文件。 应用 YAML 文件。
$ oc apply -f <configmap_file_name>.yaml
重新启动管道服务器。
$ oc project <data_science_project_name> $ oc delete pod $(oc get pods -l app=ds-pipeline-pipelines-definition --no-headers | awk {print $1})
ODH-DASHBOARD-1741 - 无法创建一个以数字开头的工作台
如果您试图创建名称以数字开头的工作台,则工作台不会启动。
- 临时解决方案
- 删除工作台,创建一个以字母开头的名称的新工作台。
ODH-DASHBOARD-1699 - Workbench 在配置更新后不会重启
如果您更新工作台配置(例如,通过更改环境变量值),工作台不会自动重启,且不会看到更改。
- 临时解决方案
- 手动重启工作台。
KUBEFLOW-157 - 如果您已注销 OpenShift Data Science 仪表板,从 JupyterLab 中注销。
如果在退出 JupyterLab 前退出 OpenShift Data Science 仪表板,则从 JupyterLab 注销。例如,如果您知道 Jupyter 笔记本的 URL,您可以在浏览器中再次打开它。
- 临时解决方案
- 退出 OpenShift Data Science 仪表板前,先从 JupyterLab 注销。
RHODS-9789 - 如果 Pipeline 服务器包含数据库名或用户名字段中包含短划线的自定义数据库,则它们无法启动
当您创建一个使用自定义数据库的管道服务器时,如果您为 dbname 字段或 username 字段设置的值中包含短划线,则管道服务器无法启动。
- 临时解决方案
- 编辑管道服务器,从受影响的字段中省略横线。
rhoDS-9764 - 编辑工作台时数据连接详情会被重置
当您编辑具有现有数据连接的工作台,然后选择 Create new data connection 选项时,在指定新的连接详情前,编辑页面可能会恢复到 Use existing data connection 选项。
- 临时解决方案
要临时解决这个问题,请执行以下操作:
- 再次选择 Create new data connection 选项。
- 指定新的连接详情,并在页面恢复到 Use existing data connection 选项前点 Update workbench。
rhoDS-9583 - Data Science 仪表板不会检测现有的 OpenShift Pipelines 安装
当 OpenShift Pipelines Operator 作为全局 Operator 安装在集群中时,Data Science 仪表板无法正确检测到它。
左侧导航栏中的 Data Science Pipelines 选项旁边会出现一个警报图标。打开 Data Science Pipelines 时,您会看到以下信息:"要使用管道,首先安装 Red Hat OpenShift Pipelines Operator"。 但是,当您查看 openshift-operators
项目中安装的 Operator 列表时,您会看到 OpenShift Pipelines 已安装为集群中的全局 Operator。
- 临时解决方案
以具有
cluster-admin
权限的用户身份登录这些步骤:-
使用
oc
客户端登录到集群。 输入以下命令在
redhat-ods-applications
应用程序命名空间中更新OdhDashboardConfig
:$ oc patch OdhDashboardConfig odh-dashboard-config -n redhat-ods-applications --type=merge -p '{"spec": {"dashboardConfig": {"disablePipelines": false}}}'
-
使用
RHODS-9412 - 如果具有编辑权限的用户创建工作台,则 Elyra 管道无法运行
如果被授予项目的编辑权限的用户创建了项目工作台,该用户会看到以下行为:
-
在工作台创建过程中,用户会看到与创建 Kubernetes 角色绑定相关的
Error create workbench
消息。 - 虽然前面的错误消息,OpenShift Data Science 仍然会创建工作台。但是,错误消息意味着用户无法使用工作台来运行 Elyra 数据科学管道。
如果用户尝试使用工作台运行 Elyra 管道,Jupyter 会显示描述失败初始化的错误
请求
消息。- 临时解决方案
- 具有管理员权限(如项目所有者)的用户必须代表具有编辑权限的用户创建工作台。然后,用户可以使用工作台运行 Elyra 管道。
RHODS-9030 - 在删除 kfdefs
资源时,OpenShift Data Science 的卸载过程可能会卡住
卸载 OpenShift Data Science 管理的服务的步骤,请参考 卸载 OpenShift Data Science。
但是,即使您遵循本指南,您可能看到卸载过程无法成功完成。相反,进程会保留在删除 Kubeflow Operator 使用的 kfdefs
资源的步骤。如以下示例所示,redhat-ods-applications
、redhat-ods-monitoring 和
命名空间中可能存在 rhods-
notebookskfdefs
资源:
$ oc get kfdefs.kfdef.apps.kubeflow.org -A NAMESPACE NAME AGE redhat-ods-applications rhods-anaconda 3h6m redhat-ods-applications rhods-dashboard 3h6m redhat-ods-applications rhods-data-science-pipelines-operator 3h6m redhat-ods-applications rhods-model-mesh 3h6m redhat-ods-applications rhods-nbc 3h6m redhat-ods-applications rhods-osd-config 3h6m redhat-ods-monitoring modelmesh-monitoring 3h6m redhat-ods-monitoring monitoring 3h6m rhods-notebooks rhods-notebooks 3h6m rhods-notebooks rhods-osd-config 3h5m
删除 kfdefs
资源失败可能会阻止以后安装 OpenShift Data Science 版本。
- 临时解决方案
-
要手动删除
kfdefs
资源以便可以完成卸载过程,请参阅以下红帽解决方案中的 "Force individual object removal when it have finalizers" 部分: https://access.redhat.com/solutions/4165791
rhODS-8939 - 对于在上一发行版本中创建的 Jupyter 笔记本,默认共享内存可能会导致运行时错误
对于在当前版本之前的发行版本中创建的 Jupyter 笔记本,Jupyter 笔记本的默认共享内存被设置为 64 Mb,您无法在笔记本配置中更改此默认值。
例如,PyTorT 依赖于共享内存,默认大小为 64 Mb 不足以用于大型用例,比如在培训模型或执行繁重数据操作时。Jupyter 报告了一个 "no space left on device" 信息,/dev/smh
为 full。
从版本 1.31 开始,这个问题已被解决,任何新的笔记本的共享内存被设置为节点的大小。
- 临时解决方案
对于在 1.31 之前的发行版本中创建的 Jupyter 笔记本,可以重新创建 Jupyter 笔记本或按照以下步骤操作:
- 在数据科学项目中,创建一个工作台,如 创建项目工作台 中所述。
- 在 data Science 项目页面中,在 Workbenches 部分中,单击工作台的 Status 切换,将其从 Running 改为 Stopped。
- 打开 OpenShift 控制台,然后选择 Administrator。
-
选择 Home
API Explorer。 - 在 Filter by kind 字段中,键入 notebook。
- 选择 kubeflow v1 笔记本。
- 选择 Instances 选项卡,然后选择在第 1 步中创建的工作台的实例。
-
点 YAML 选项卡,然后选择 Actions
Edit Notebook。 编辑 YAML 文件,在配置中添加以下信息:
对于具有 Workbench 笔记本名称的容器,请在
volumeMounts
部分添加以下行:- mountPath: /dev/shm name: shm
例如,如果您的工作台名称是
myworkbench
,请按如下所示更新 YAML 文件:spec: containers: - env ... name: myworkbench ... volumeMounts: - mountPath: /dev/shm name: shm
在 volumes 部分,添加以下示例中显示的行:
volumes: name: shm emptyDir: medium: Memory
备注:另外,您可以指定用于
emptyDir
的内存量的限制。
- 点击 Save。
- 在数据科学项目的 Workbenches 部分中,点工作台的 Status 切换。状态从 Stopped 变为 Starting,然后变为 Running。
- 重启笔记本。
如果您稍后通过 Data Science 仪表板 UI 编辑笔记本的配置,则对笔记本配置的临时解决方案编辑将被清除。
rhODS-8921 - 超过累积字符限制时无法创建管道服务器
当数据科学项目名称和管道服务器名称的累积字符限制超过 62 个字符时,您无法成功创建管道服务器。
- 临时解决方案
- 重命名您的数据科学项目,使其不超过 30 个字符。
rhoDS-8865 - 管道服务器无法启动,除非您指定了 Amazon Web Services (AWS) Simple Storage Service (S3)存储桶资源
当您为数据科学项目创建数据连接时,AWS_S3_BUCKET 字段不会被指定为强制字段。但是,如果您没有为此字段指定值,并且尝试配置管道服务器,管道服务器将无法成功启动。
RHODS-7718 - 没有仪表板权限的用户可以无限期地继续使用其正在运行的笔记本和工作台
当 Red Hat OpenShift Data Science 管理员撤销了用户的权限时,用户可以继续无限期地使用其正在运行的笔记本和工作台。
- 临时解决方案
- 当 OpenShift Data Science 管理员撤销用户权限时,管理员还应停止为该用户运行的任何笔记本和工作台。
RHODS-6907 - 当没有连接到工作台时,尝试增加持久性卷(PV)的大小会失败
尝试增加没有连接到工作台的持久性卷(PV)的大小会失败。在更改数据科学项目的存储时,用户仍然可以在用户界面中编辑 PV 的大小,但此操作没有任何效果。
RHODS-6950 - 在使用集群中的所有 GPU 时,无法缩减工作台的 GPU
如果使用集群中的所有 GPU,则无法缩减工作台的 GPU。这个问题适用于一个工作台使用的 GPU,以及多个工作台使用的 GPU。
- 临时解决方案
要临时解决这个问题,请执行以下步骤:
- 停止所有使用 GPU 的活跃工作台。
- 等待相关 GPU 再次可用。
- 编辑工作台,再缩减 GPU 实例。
rhoDS-6539 - OpenShift Data Science 中无法验证并启用 Anaconda 专业版
无法启用 Anaconda 专业版,因为 Anaconda 专业版的仪表板密钥验证是不可操作的。
RHODS-6346 - 使用无效字符创建数据科学项目时会显示 Unclear 错误消息
当使用无效特殊字符创建数据科学项目的数据连接、工作台或存储连接时,会显示以下出错信息:
the object provided is unrecognized (must be of type Secret): couldn't get version/kind; json parse error: unexpected end of JSON input ({"apiVersion":"v1","kind":"Sec ...)
错误消息无法清楚地指出问题。
rhODS-6955 - 尝试编辑工作台时可能会出现错误
编辑工作台时,可能会出现类似如下的错误:
Error creating workbench Operation cannot be fulfilled on notebooks.kubeflow.org "workbench-name": the object has been modified; please apply your changes to the latest version and try again
RHODS-6913 - 编辑工作台配置设置时,会出现误导性错误消息
当您编辑工作台的配置设置时,会出现一条警告消息,指出工作台会在其配置设置进行任何更改时重新启动。这个警告是误导,因为如果您更改了其环境变量的值,工作台不会自动重启。
rhODS-6383 - 在工作台创建过程中需要时不会显示 ImagePullBackOff 错误消息
Pod 可能会遇到从容器 registry 中拉取容器镜像的问题。如果发生错误,则相关 pod 进入 ImagePullBackOff
状态。在工作台创建过程中,如果发生 ImagePullBackOff
错误,则不会显示适当的消息。
- 临时解决方案
-
检查事件日志以了解更多有关
ImagePullBackOff
错误的信息。为此,请在工作台启动时单击工作台状态。
rhODS-6373 - 超过累积字符限制时无法启动 Workbenches
当数据科学项目的标题和工作台标题的累积字符限制超过 62 个字符时,工作台无法启动。
RHODS-6356 - 笔记本创建过程对于没有登录到仪表板的用户失败
控制面板的笔记本 Administration 页面显示属于 OpenShift 中用户组和 admin 组的用户。但是,如果管理员尝试代表从未登录到仪表板的用户启动笔记本服务器,服务器创建过程会失败,并显示以下错误消息:
Request invalid against a username that does not exist.
- 临时解决方案
- 请求相关用户登录到仪表板。
rhoDS-6216 - ModelMesh oauth-proxy 容器不稳定
因为 ModelMesh oauth-proxy
容器失败,ModelMesh pod 无法正确部署。此问题会间歇性地发生,且只在 ModelMesh 运行时环境中启用了身份验证时发生。当在不同的命名空间中部署了额外的 ModelMesh 实例时,更可能会发生这个问题。
RHODS-5906 - NVIDIA GPU Operator 与 OpenShift 4.11.12 不兼容
在 OpenShift 4.11.12 集群中置备 GPU 节点时,会导致 nvidia-driver-daemonset
pod 处于 CrashLoopBackOff 状态。NVIDIA GPU Operator 与 OpenShift 4.11.9 和 4.11.13 兼容。
rhODS-5763 - 在笔记本选择过程中显示正确的软件包版本
启动一个笔记本服务器页面显示 Anaconda 笔记本镜像 的不正确的版本号。
rhODS-5543 - 使用 NVIDIA GPU Operator 时,超过 Node Autoscaler 创建的节点数量
当因为可用资源不足而无法调度 pod 时,Node Autoscaler 将创建一个新节点。在新创建的节点接收相关 GPU 工作负载前会有一个延迟。因此,pod 无法调度,Node Autoscaler 会不断创建额外的新节点,直到其中一个节点准备好接收 GPU 工作负载。有关此问题的更多信息,请参阅使用 NVIDIA GPU Operator 时,超过 Node Autoscaler 创建的节点数量。
- 临时解决方案
-
在
machineset.spec.template.spec.metadata
中应用cluster-api/accelerator
标签。这会导致自动扩展将这些节点视为未就绪,直到部署了 GPU 驱动程序。
RHODS-5251 - 笔记本服务器管理页面显示已丢失权限的用户
如果以前在 Jupyter 中启动笔记本服务器的用户缺少了他们执行此操作的权限(例如,如果 OpenShift Data Science 管理员更改了用户组设置或从允许组中删除该用户),管理员将继续查看服务器管理页面中的用户。因此,管理员可以重启属于撤销权限的用户的笔记本服务器。
RHODS-4769 - 具有不支持污点的节点上的 GPU 无法分配给笔记本服务器
在创建笔记本服务器时,无法选择带有任何受支持 nvidia.com/gpu 污点的节点上的 GPU。要避免这个问题,请只使用与 OpenShift Data Science 搭配使用的 GPU 节点上的 nvidia.com/gpu 污点。
rhoDS-4799 - Tensorboard 需要手动步骤来查看
当用户有 TensorFlow 或 PyTorchbook 镜像,并希望使用 TensorBoard 显示数据,需要手动步骤在笔记本环境中包含环境变量,并在您的代码中导入这些变量。
- 临时解决方案
- 在启动笔记本服务器时,使用以下代码来设置 TENSORBOARD_PROXY_URL 环境变量的值,以使用您的 OpenShift Data Science 用户 ID。
import os os.environ["TENSORBOARD_PROXY_URL"]= os.environ["NB_PREFIX"]+"/proxy/6006/"
rhoDS-4718 - Intel® oneAPI AI Analytics Toolkits 快速启动引用不存在的示例笔记本
Intel® OneAPI AI Analytics Toolkits 快速开始(位于仪表板上的 Resources 页面中),要求用户以指令步骤的一部分加载示例笔记本,但引用相关存储库中不存在的笔记本。
rhODS-4627 - 负责验证 Anaconda 专业版许可证的 CronJob 已暂停,且不会每天运行
负责验证 Anaconda 专业版许可证的 CronJob 将由 OpenShift Data Science 操作器自动暂停。因此,CronJob 不会每日运行。另外,当 Anaconda 专业版的许可证过期时,Anaconda 专业版在 OpenShift Data Science 仪表板中没有被禁用。
rhODS-4502 - 仪表板中的 NVIDIA GPU Operator 卡显示不必要的按钮
安装 NVIDIA GPU Operator 后,Jupyter 中会自动提供 GPU。因此,在 Explore 页面中的 NVIDIA GPU Operator 中 启用按钮是多余的。另外,点 Enable 按钮将 NVIDIA GPU Operator 卡移到 Enabled 页面,即使 Operator 没有被安装。
rhoDS-3985 - Dashboard 在 ISV operator 卸载后不会显示 *Enabled 页面内容
卸载 ISV 操作器后,仪表板的 Enabled 页没有显示任何内容。相反,会显示以下错误:
Error loading components HTTP request failed
- 临时解决方案
- 等待 30-40 秒,然后在浏览器中刷新页面。
rhODS-3984 - 在笔记本选择过程中显示正确的软件包版本
在 OpenShift Data Science 界面中,启动一个笔记本服务器页面 显示 oneAPI AI Analytics Toolkit 笔记本镜像中包含的 JupyterLab 和 Notebook 软件包的不正确版本号。该页面还可能显示此镜像使用的 Python 版本的错误值。
- 临时解决方案
-
当您启动 oneAPI AI Analytics Toolkit 笔记本服务器时,您可以在笔记本服务器上安装了哪些 Python 软件包,以及在笔记本单元中运行
!pip list
命令的软件包的版本。
RHODS-2956 - 创建笔记本实例时可能会出现错误
在 Jupyter 中创建 notebook 实例时,有时会出现未找到目录
错误。单击 Dismiss 可忽略此错误消息。
rhoDS-2881 - 对仪表板的操作没有明确可见
在仪表板中,重新验证已禁用应用程序的许可证的操作,以及删除禁用应用程序的卡的操纵对于用户没有明确可见。只有在用户点击应用程序卡的 Disabled
标签时,才会出现这些操作。因此,相关的工作流对于用户可能并不明确。
rhoDS-2879 - 许可证重新验证操作没有必要
对于没有许可证验证或激活系统的应用程序,用于重新验证禁用的应用程序的许可证的仪表板操作并不必要。另外,当用户尝试重新验证无法重新验证的许可证时,不会显示说明操作无法完成的原因。
RHODS-2650 - Pachyderm 部署期间可能会出现错误
在创建 Pachyderm operator 的实例时,webhook 错误会出现间歇性错误,从而导致创建过程成功启动。webhook 错误表明,Pachyderm operator 无法进行健康检查,从而导致它重启,或者 Operator 进程超过其容器分配的内存限值,可触发内存不足(OOM)终止。
- 临时解决方案
- 重复 Pachyderm 实例创建过程,直到不再显示错误。
RHODS-2096 - IBM Watson Studio 不在 OpenShift Data Science 中
当在 OpenShift Dedicated 4.9 或更高版本上安装 OpenShift Data Science 时,IBM Watson Studio 不可用,因为它与这些版本的 OpenShift Dedicated 不兼容。联系 Marketplace 支持,以获取在 OpenShift Dedicated 4.9 及更高版本上手动配置 Watson Studio 的帮助。
RHODS-1888 - OpenShift Data Science 超链接在卸载后仍然可见
从 OpenShift Dedicated 集群卸载 OpenShift Data Science Add-on 时,应用程序启动程序菜单中可以看到到 OpenShift Data Science 界面的链接。点击此链接会导致 "Page Not Found" 错误,因为 OpenShift Data Science 不再可用。