在 S3 兼容对象存储中使用数据
前言 复制链接链接已复制到粘贴板!
如果您的数据存储在 S3 兼容对象存储中,如 Ceph、MinIO 或 IBM Cloud Object Storage,您可以从工作台访问数据。
第 1 章 先决条件 复制链接链接已复制到粘贴板!
- 您已在 OpenShift AI 中创建了一个工作台。如需更多信息,请参阅创建工作台并选择 IDE。
- 您可以访问 S3 兼容对象存储。
- 您有 S3 兼容对象存储帐户的凭据。
- 您有要在对象存储中使用的文件。
- 您已根据 S3 兼容存储帐户的凭证为工作台配置了连接。如需更多信息,请参阅使用连接。
第 2 章 创建 S3 客户端 复制链接链接已复制到粘贴板!
要与来自工作台的 S3 兼容对象存储中的数据交互,您必须创建一个本地客户端来处理对 AWS S3 服务的请求,如 Boto3。
Boto3 是 Python 的 AWS SDK,它为创建和管理 AWS 服务(如 AWS S3 或 S3 兼容对象存储)提供 API。
从工作台为 S3 服务配置了 Boto3 客户端后,您可以连接并使用 S3 兼容对象存储中的数据。
先决条件
- 您可以访问 S3 兼容对象存储。
- 您已在对象存储的存储桶中保存了文件。
- 您已登陆到 Red Hat OpenShift AI。
- 您已创建了数据科学项目。
- 您已使用工作台镜像向项目添加了一个工作台。
- 您已根据 S3 兼容存储帐户的凭证为工作台配置了连接。
流程
- 在 OpenShift AI 仪表板中点 Data Science projects。
- 点包含工作台的项目的名称。
- 单击 Workbenches 选项卡。
如果工作台的状态为 Running,请跳至下一步。
如果工作台的状态为 Stopped,在工作台的 Status 列中点 Start。
当工作台服务器启动时,Status 列从 Stopped 改为 Starting,然后在工作台成功启动时变为 Running。
点工作台旁边的打开图标(
)。
您的 Jupyter 环境窗口将打开。
- 在工具栏中,单击 Git Clone 图标,然后选择 Clone a Repository。
-
在 Clone a repo 对话框中,输入以下 URL
https://github.com/opendatahub-io/odh-doc-examples.git,然后点 Clone。 -
在文件浏览器中,选择新创建的
odh-doc-examples文件夹。 双击新创建的
存储文件夹。您会看到一个名为
s3client_examples.ipynb的 Jupyter 笔记本。双击
s3client_examples.ipynb文件,以启动 Jupyter 笔记本。Jupyter 笔记本将打开。您会看到以下任务的代码示例:
- 安装 Boto3 和所需的 Boto3 库
- 创建 S3 客户端会话
- 创建 S3 客户端连接
- 列出文件
- 创建存储桶
- 上传文件到存储桶
- 从存储桶下载文件
- 在存储桶间复制文件
- 从存储桶中删除对象
- 删除存储桶
在 Jupyter 笔记本中,找到以下说明来安装 Boto3 及其所需库,并运行代码单元:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 代码单元中的说明将 Python Package Manager (pip)更新至最新版本,安装 Boto3 及其所需的库,并显示安装的 Boto3 版本。
找到以下说明以创建 S3 客户端和服务器。运行代码单元。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 代码单元中的说明配置 S3 客户端,并建立与 S3 兼容对象存储的会话。
验证
要使用 S3 客户端连接到对象存储并列出可用的存储桶,请找到以下说明来列出存储桶并运行代码单元:
s3_client.list_buckets()
s3_client.list_buckets()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功响应包括
HTTPStatusCode为200,以及类似以下输出的存储桶列表:'HTTPStatusCode': 200, 'Buckets': [{'Name': 'aqs086-image-registry', 'CreationDate': datetime.datetime(2024, 1, 16, 20, 21, 36, 244000, tzinfo=tzlocal ())}]'HTTPStatusCode': 200, 'Buckets': [{'Name': 'aqs086-image-registry', 'CreationDate': datetime.datetime(2024, 1, 16, 20, 21, 36, 244000, tzinfo=tzlocal ())}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 列出对象存储中的可用存储桶 复制链接链接已复制到粘贴板!
要列出对象存储中可用的存储桶,请使用 list_bucket () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
流程
在 Jupyter 笔记本中,找到以下列出可用存储桶的指令,然后运行代码单元。
#List available buckets s3_client.list_buckets()
#List available buckets s3_client.list_buckets()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功的响应包括 HTTP 请求状态代码
200和存储桶列表,类似于以下输出:'HTTPStatusCode': 200, 'Buckets': [{'Name': 'aqs086-image-registry', 'CreationDate': datetime.datetime(2024, 1, 16, 20, 21, 36, 244000, tzinfo=tzlocal( ))},'HTTPStatusCode': 200, 'Buckets': [{'Name': 'aqs086-image-registry', 'CreationDate': datetime.datetime(2024, 1, 16, 20, 21, 36, 244000, tzinfo=tzlocal( ))},Copy to Clipboard Copied! Toggle word wrap Toggle overflow 找到只输出可用存储桶的名称并执行代码单元的指令。
#Print only names of available buckets for bucket in s3_client.list_buckets()[‘Buckets’]: print(bucket[‘Name’])#Print only names of available buckets for bucket in s3_client.list_buckets()[‘Buckets’]: print(bucket[‘Name’])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示存储桶的名称,类似以下示例。
aqs086-image-registry aqs087-image-registry aqs135-image-registry aqs246-image-registry
aqs086-image-registry aqs087-image-registry aqs135-image-registry aqs246-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 在对象存储中创建存储桶 复制链接链接已复制到粘贴板!
要从工作台的对象存储中创建存储桶,请使用 create_bucket () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
流程
在笔记本文件中,找到以下创建存储桶的说明:
#Create bucket ` s3_client.create_bucket(Bucket='<bucket_name>')
#Create bucket ` s3_client.create_bucket(Bucket='<bucket_name>')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
name_of_the_bucket> 替换为您要创建的存储桶的名称,如示例中所示,然后运行代码单元。#Create bucket s3_client.create_bucket(Bucket='aqs43-image-registry')
#Create bucket s3_client.create_bucket(Bucket='aqs43-image-registry')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示 HTTP 响应状态代码
200,表示请求成功。
验证
找到列出存储桶并执行代码单元的指令。
for bucket in s3_client.list_bucket()[‘Buckets’]: print(bucket[‘Name’])for bucket in s3_client.list_bucket()[‘Buckets’]: print(bucket[‘Name’])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您创建的存储桶将显示在输出中显示。
第 5 章 列出存储桶中的文件 复制链接链接已复制到粘贴板!
要列出特定存储桶中的文件,请使用 list_bucket_v2 () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
流程
在 Jupyter 笔记本中,找到以下列出文件的代码。
#List files #Replace <bucket_name> with the name of the bucket. bucket_name = ‘<bucket_name>’ s3_client.list_objects_v2(Bucket=bucket_name)
#List files #Replace <bucket_name> with the name of the bucket. bucket_name = ‘<bucket_name>’ s3_client.list_objects_v2(Bucket=bucket_name)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
;bucket_name> 替换为您自己的存储桶的名称,如示例所示,然后运行代码单元。#List files #Replace <bucket_name> with the name of the bucket. bucket_name = ‘aqs27-registry’ s3_client.list_objects_v2(Bucket=bucket_name)
#List files #Replace <bucket_name> with the name of the bucket. bucket_name = ‘aqs27-registry’ s3_client.list_objects_v2(Bucket=bucket_name)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出中显示了指定存储桶中可用文件的信息。
找到仅列出文件的名称的代码单元。
#Print only names of files bucket_name = ‘<bucket_name>’ for key in s3_client.list_objects_v2(Bucket=bucket_name)[‘Contents’]: print(key[‘Key’])
#Print only names of files bucket_name = ‘<bucket_name>’ for key in s3_client.list_objects_v2(Bucket=bucket_name)[‘Contents’]: print(key[‘Key’])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
bucket_name> 替换为存储桶的名称,如示例所示,并运行代码单元:#Print only names of files bucket_name = ‘aqs27-registry’ for key in s3_client.list_objects_v2(Bucket=bucket_name)[‘Contents’]: print(key[‘Key’])
#Print only names of files bucket_name = ‘aqs27-registry’ for key in s3_client.list_objects_v2(Bucket=bucket_name)[‘Contents’]: print(key[‘Key’])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示指定存储桶中可用的文件名列表。
通过找到以下代码单元,优化前面的查询来指定文件路径:
bucket_name = ‘<bucket_name>’ for key in s3_client.list_objects_v2(Bucket=bucket_name,Prefix=’<start_of_file_path’)[‘Contents’]: print(key[‘Key’])
bucket_name = ‘<bucket_name>’ for key in s3_client.list_objects_v2(Bucket=bucket_name,Prefix=’<start_of_file_path’)[‘Contents’]: print(key[‘Key’])Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<bucket_name> 和 <start_of_file_path> 替换为您自己的值并运行代码单元。
第 6 章 从存储桶下载文件 复制链接链接已复制到粘贴板!
要从存储桶下载文件到工作台,请使用 download_file () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
流程
在 Jupyter 笔记本中,找到以下从存储桶下载文件的说明:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改代码示例:
-
将
<bucket_name> 替换为文件位于… 中的存储桶名称,将 <object_name> 替换为您要下载的文件的名称。 将 <
file_name> 替换为您要下载该文件的名称和路径,如示例所示。s3_client.download_file('aqs086-image-registry', 'series35-image36-086.csv', '\tmp\series35-image36-086.csv_old')s3_client.download_file('aqs086-image-registry', 'series35-image36-086.csv', '\tmp\series35-image36-086.csv_old')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
将
- 运行代码单元。
验证
- 您下载的文件会显示在您在工作台中指定的路径中。
第 7 章 将文件上传到存储桶 复制链接链接已复制到粘贴板!
要从工作台上传文件到存储桶,请使用 upload_file () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
- 您已导入要上传到对象存储的文件到工作台中。
流程
在 Jupyter 笔记本中,找到上传文件到存储桶的说明。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<file_name> , <bucket_name> 和 <object_name> 替换为您自己的值,如示例中所示,然后运行代码单元。s3_client.upload_file('image-973-series123.csv', 'aqs973-image-registry', '/tmp/image-973-series124.csv')s3_client.upload_file('image-973-series123.csv', 'aqs973-image-registry', '/tmp/image-973-series124.csv')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
找到以下说明以列出存储桶中的文件:
#Upload Verification for key in s3_client.list_objects_v2(Bucket='<bucket_name>')['Contents']: print(key['Key'])
#Upload Verification for key in s3_client.list_objects_v2(Bucket='<bucket_name>')['Contents']: print(key['Key'])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
bucket_name> 替换为存储桶的名称,如示例所示,然后运行代码单元。#Upload Verification for key in s3_client.list_objects_v2(Bucket='aqs973-image-registry')['Contents']: print(key['Key'])
#Upload Verification for key in s3_client.list_objects_v2(Bucket='aqs973-image-registry')['Contents']: print(key['Key'])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您上传的文件将显示在输出中。
第 8 章 在存储桶间复制文件 复制链接链接已复制到粘贴板!
要从工作台的对象存储中复制存储桶之间的文件,请使用 copy () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
- 您知道要复制的源文件的密钥,以及该文件存储在的存储桶。
流程
在笔记本中,找到以下说明以在存储桶间复制文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
copy_source块中,将 <bucket_name> 替换为源存储桶的名称,<key> 替换为源文件的密钥,如示例所示。copy_source = { 'Bucket': 'aqs086-image-registry', 'Key': 'series43-image12-086.csv' }copy_source = { 'Bucket': 'aqs086-image-registry', 'Key': 'series43-image12-086.csv' }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<destination_bucket> 替换为要复制到的存储桶的名称,将 <destination_key> 替换为要复制到的密钥的名称,如示例所示。执行代码单元。s3_client.copy(copy_source, 'aqs971-image-registry', '/tmp/series43-image12-086.csv')
s3_client.copy(copy_source, 'aqs971-image-registry', '/tmp/series43-image12-086.csv')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
找到以下说明,以列出存储桶中的对象。
#Copy Verification bucket_name = '<bucket_name>' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])#Copy Verification bucket_name = '<bucket_name>' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
bucket_name> 替换为目标存储桶的名称,如示例所示,并运行代码单元。#Copy Verification bucket_name = 'aqs971-image-registry' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key']).
#Copy Verification bucket_name = 'aqs971-image-registry' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key']).Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您复制的文件显示在输出中。
第 9 章 从存储桶中删除文件 复制链接链接已复制到粘贴板!
要从工作台中删除存储桶中的文件,请使用 delete_file () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
- 您知道要删除的文件的密钥以及该文件所在的存储桶。
流程
在 Jupyter 笔记本中,找到以下说明从存储桶中删除文件:
#Delete files from bucket s3_client.delete_object(Bucket='<bucket_name>', Key='<object_key>')
#Delete files from bucket s3_client.delete_object(Bucket='<bucket_name>', Key='<object_key>')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
bucket_name> 替换为存储桶的名称,<key> 替换为您要删除的文件的密钥,如示例所示。运行代码单元。#Delete object from bucket s3_client.delete_object(Bucket='aqs971-image-registry', Key='/tmp/series43-image12-086.csv')
#Delete object from bucket s3_client.delete_object(Bucket='aqs971-image-registry', Key='/tmp/series43-image12-086.csv')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示 HTTP 响应状态代码
204,这表示请求成功。
验证
找到以下说明以列出存储桶中的文件:
#Delete Object Verification bucket_name = '<bucket_name>' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])
#Delete Object Verification bucket_name = '<bucket_name>' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
bucket_name> 替换为存储桶的名称,如示例所示,并运行代码单元。#Delete Object Verification bucket_name = 'aqs971-image-registry' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])
#Delete Object Verification bucket_name = 'aqs971-image-registry' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除的文件不会出现在输出中。
第 10 章 从对象存储中删除存储桶 复制链接链接已复制到粘贴板!
要从工作台中删除对象存储中的存储桶,请使用 delete_bucket () 方法。
先决条件
-
您已将
odh-doc-examples存储库克隆到工作台中。 -
您已在工作台中打开
s3client_examples.ipynb文件。 - 已安装 Boto3 并配置了 S3 客户端。
- 您已确保要删除的存储桶为空。
流程
在 Jupyter 笔记本中,找到以下删除存储桶的说明:
#Delete bucket s3_client.delete_bucket(Bucket='<bucket_name>')
#Delete bucket s3_client.delete_bucket(Bucket='<bucket_name>')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
bucket_name> 替换为您要删除的存储桶的名称,并运行代码单元。#Delete bucket s3_client.delete_bucket(Bucket='aqs971-image-registry')
#Delete bucket s3_client.delete_bucket(Bucket='aqs971-image-registry')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示 HTTP 响应状态代码
200,这表示请求成功。
验证
找到列出存储桶的指令,并执行代码单元。
for bucket in s3_client.list_bucket()[‘Buckets’]: print(bucket[‘Name’])for bucket in s3_client.list_bucket()[‘Buckets’]: print(bucket[‘Name’])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您删除的存储桶不会出现在输出中。
第 11 章 对象存储端点概述 复制链接链接已复制到粘贴板!
要确保在 OpenShift AI 中正确配置对象存储,您必须为不同类型的对象存储正确格式化端点。这些说明是用于为 Amazon S3、MinIO 或其他兼容 S3 的存储解决方案格式化端点,最大程度减少配置错误并确保兼容性。
正确格式化的端点可以连接并降低错误配置的风险。为您的对象存储类型使用适当的端点格式。不当格式化可能会导致连接错误或限制对存储资源的访问。
11.1. minio (On-Cluster) 复制链接链接已复制到粘贴板!
对于 on-cluster MinIO 实例,请使用本地端点 URL 格式。在配置 MinIO 端点时,请确保以下内容:
-
根据您的 MinIO 安全设置,使用
http://或https://为端点添加前缀。 - 包含集群 IP 或主机名,并在指定时加上端口号。
-
如果您的 MinIO 实例需要有一个(通常为
9000),请使用端口号。
Example:
http://minio-cluster.local:9000
http://minio-cluster.local:9000
通过检查集群 DNS 设置和网络配置来验证 MinIO 实例是否可以访问集群中的。
11.2. Amazon S3 复制链接链接已复制到粘贴板!
在为 Amazon S3 配置端点时,请使用特定于区域的 URL。Amazon S3 端点通常采用以下格式:
-
使用
https://为端点加上前缀。 -
格式为 &
lt;bucket-name>.s3.<region>.amazonaws.com,其中<bucket-name> 是 S3 存储桶的名称,<region> 是 AWS 区域代码(如us-west-1,eu-central-1)。
Example:
https://my-bucket.s3.us-west-2.amazonaws.com
https://my-bucket.s3.us-west-2.amazonaws.com
为了提高安全性和合规性,请确保您的 Amazon S3 存储桶位于正确的区域中。
11.3. 其他 S3-Compatible 对象存储 复制链接链接已复制到粘贴板!
对于 Amazon S3 以外的 S3 兼容存储解决方案,请遵循您的供应商所需的特定端点格式。通常,这些端点包括以下项目:
-
供应商基本 URL,前缀为
https://。 - bucket 名称和区域参数(由供应商指定)。
- 查看 S3 兼容供应商的文档,以确认所需的端点格式。
-
将 <
bucket-name> 和 <region> 等占位符值替换为您的特定配置详情。
S3 兼容供应商错误格式化的端点可能会导致访问拒绝。始终在存储供应商文档中验证格式以确保兼容性。
11.4. 验证和故障排除 复制链接链接已复制到粘贴板!
配置端点后,通过 OpenShift AI 仪表板执行测试上传或直接访问对象存储来验证连接性。要进行故障排除,请检查以下项目:
- Network Accessibility: 确认端点可以从 OpenShift AI 集群访问。
- Authentication: 确保正确访问每种存储类型的凭证。
- 端点加速 :检查任何拼写错误或缺少组件的端点 URL 格式。
第 12 章 使用自签名证书访问 S3 兼容对象存储 复制链接链接已复制到粘贴板!
要安全地将 OpenShift AI 组件连接到使用自签名证书的 OpenShift 集群中部署的对象存储解决方案或数据库,您必须提供证书颁发机构(CA)证书。每个命名空间都包括一个名为 kube-root-ca.crt 的 ConfigMap,其中包含内部 API 服务器的 CA 证书。
先决条件
- 具有集群管理员特权。
- 已安装 OpenShift 命令行界面(CLI)。请参阅安装 OpenShift CLI。
- 您已在 OpenShift 集群中部署了对象存储解决方案或数据库。
流程
在一个终端窗口中,登录到 OpenShift CLI,如下例所示:
oc login api.<cluster_name>.<cluster_domain>:6443 --web
oc login api.<cluster_name>.<cluster_domain>:6443 --webCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索当前的 OpenShift AI 可信 CA 配置,并将其存储在新文件中:
oc get dscinitializations.dscinitialization.opendatahub.io default-dsci -o json | jq -r '.spec.trustedCABundle.customCABundle' > /tmp/my-custom-ca-bundles.crt
oc get dscinitializations.dscinitialization.opendatahub.io default-dsci -o json | jq -r '.spec.trustedCABundle.customCABundle' > /tmp/my-custom-ca-bundles.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将集群的
kube-root-ca.crtConfigMap 添加到 OpenShift AI 可信 CA 配置中:oc get configmap kube-root-ca.crt -o jsonpath="{['data']['ca\.crt']}" >> /tmp/my-custom-ca-bundles.crtoc get configmap kube-root-ca.crt -o jsonpath="{['data']['ca\.crt']}" >> /tmp/my-custom-ca-bundles.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 OpenShift AI 可信 CA 配置,以信任
kube-root-ca.crt中证书颁发机构发布的证书:oc patch dscinitialization default-dsci --type='json' -p='[{"op":"replace","path":"/spec/trustedCABundle/customCABundle","value":"'"$(awk '{printf "%s\\n", $0}' /tmp/my-custom-ca-bundles.crt)"'"}]'oc patch dscinitialization default-dsci --type='json' -p='[{"op":"replace","path":"/spec/trustedCABundle/customCABundle","value":"'"$(awk '{printf "%s\\n", $0}' /tmp/my-custom-ca-bundles.crt)"'"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 您可以成功部署配置为使用 OpenShift 集群中部署的对象存储解决方案或数据库的组件。例如,配置为使用集群中部署的数据库的管道服务器可以成功启动。
您可以按照 OpenShift AI 教程 - Fraud Detection example 中的步骤来验证您的新证书配置。运行脚本来安装本地对象存储存储桶并创建连接,然后启用数据科学管道。
有关运行脚本以安装本地对象存储存储桶的更多信息,请参阅 运行脚本来安装本地对象存储存储桶并创建连接。
有关启用数据科学管道的更多信息,请参阅启用数据科学管道。