8.5. 在 OpenShift AI 组件中使用自签名证书


有些 OpenShift AI 组件为自签名证书有额外的选项或所需的配置。

8.5.1. 使用自签名证书访问 S3 兼容对象存储

要安全地将 OpenShift AI 组件连接到使用自签名证书的 OpenShift 集群中部署的对象存储解决方案或数据库,您必须提供证书颁发机构(CA)证书。每个命名空间都包括一个名为 kube-root-ca.crt 的 ConfigMap,其中包含内部 API 服务器的 CA 证书。

先决条件

  • 有 OpenShift 集群的集群管理员特权。
  • 已安装 OpenShift 命令行界面(CLI)。请参阅安装 OpenShift CLI
  • 您已在 OpenShift 集群中部署了对象存储解决方案或数据库。

流程

  1. 在一个终端窗口中,登录到 OpenShift CLI,如下例所示:

    oc login api.<cluster_name>.<cluster_domain>:6443 --web
    Copy to Clipboard Toggle word wrap
  2. 检索当前的 OpenShift AI 可信 CA 配置,并将其存储在新文件中:

    oc get dscinitializations.dscinitialization.opendatahub.io default-dsci -o json | jq -r '.spec.trustedCABundle.customCABundle' > /tmp/my-custom-ca-bundles.crt
    Copy to Clipboard Toggle word wrap
  3. 将集群的 kube-root-ca.crt ConfigMap 添加到 OpenShift AI 可信 CA 配置中:

    oc get configmap kube-root-ca.crt -o jsonpath="{['data']['ca\.crt']}" >> /tmp/my-custom-ca-bundles.crt
    Copy to Clipboard Toggle word wrap
  4. 更新 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)"'"}]'
    Copy to Clipboard Toggle word wrap

验证

  • 您可以成功部署配置为使用 OpenShift 集群中部署的对象存储解决方案或数据库的组件。例如,配置为使用集群中部署的数据库的管道服务器可以成功启动。
注意

您可以按照 OpenShift AI 教程 - Fraud Detection example 中的步骤来验证您的新证书配置。运行脚本来安装本地对象存储存储桶并创建连接,然后启用数据科学管道。

有关运行脚本以安装本地对象存储存储桶的更多信息,请参阅 运行脚本来安装本地对象存储存储桶并创建连接

有关启用数据科学管道的更多信息,请参阅启用数据科学管道

8.5.2. 为数据科学管道配置证书

默认情况下,OpenShift AI 在 odh-trusted-ca-bundle ConfigMap 中包含 OpenShift 集群范围证书。这些集群范围的证书涵盖了大多数组件,如工作台和模型服务器。但是,管道服务器可能需要额外的证书颁发机构(CA)配置,特别是在与使用自签名或自定义证书的外部系统交互时。

您可以选择为数据科学管道添加证书:

先决条件

  • 对于安装了 Red Hat OpenShift AI 的 OpenShift 集群,具有集群管理员访问权限。
  • 您已创建了自签名证书并将证书保存到文件中。例如,您已使用 OpenSSL 创建证书并将其保存到名为 example-ca.crt 的文件中。
  • 您已配置了数据科学管道服务器。

流程

  1. 登录 OpenShift 控制台。
  2. Workloads ConfigMaps 中,在与目标数据科学管道相同的数据科学项目中创建带有所需捆绑包的 ConfigMap:

    kind: ConfigMap
    apiVersion: v1
    metadata:
        name: custom-ca-bundle
    data:
        ca-bundle.crt: |
        # contents of ca-bundle.crt
    Copy to Clipboard Toggle word wrap
  3. 将以下代码片段添加到底层 Data Science Pipelines Application (DSPA) 的 .spec.apiserver.caBundle 字段中:

    apiVersion: datasciencepipelinesapplications.opendatahub.io/v1
    kind: DataSciencePipelinesApplication
    metadata:
        name: data-science-dspa
    spec:
        ...
        apiServer:
        ...
        cABundle:
            configMapName: custom-ca-bundle
            configMapKey: ca-bundle.crt
    Copy to Clipboard Toggle word wrap
  4. 保存 ConfigMap。Pipeline 服务器 pod 使用更新的捆绑包自动重新部署。

验证

确认您的 CA 捆绑包已被成功挂载:

  1. 登录 OpenShift 控制台。
  2. 进入具有目标数据科学管道的数据科学项目。
  3. Pods 选项卡。
  4. 点带有 ds-pipeline-dspa-<hash > 前缀的管道服务器 pod。
  5. Terminal
  6. 输入 cat /dsp-custom-certs/dsp-ca.crt
  7. 验证您的 CA 捆绑包是否存在于此文件中。

8.5.3. 为工作台配置证书

重要

默认情况下,自签名证书适用于您在配置集群范围证书后创建的工作台。要将集群范围的证书应用到现有的工作台,请停止并重启工作台。

自签名证书存储在 /etc/pki/tls/custom-certs/ca-bundle.crt 中。工作台使用一个预先设置的环境变量,很多流行的 HTTP 客户端软件包指向证书。对于默认未包含的软件包,您可以提供此证书路径。例如,对于 kfp 软件包连接到数据科学管道服务器:

from kfp.client import Client

with open(sa_token_file_path, 'r') as token_file:
    bearer_token = token_file.read()

    client = Client(
        host='https://<GO_TO_ROUTER_OF_DS_PROJECT>/',
        existing_token=bearer_token,
        ssl_ca_cert='/etc/pki/tls/custom-certs/ca-bundle.crt'
    )
    print(client.list_experiments())
Copy to Clipboard Toggle word wrap

默认情况下,OpenShift AI 中的 single-model 服务平台使用安装时为部署服务器时创建的端点生成的自签名证书。

如果您在 OpenShift 集群中配置了集群范围的证书,则默认将它们用于其他类型的端点,如路由的端点。

以下流程解释了如何使用与 OpenShift 集群相同的证书。

先决条件

  • 对于安装了 Red Hat OpenShift AI 的 OpenShift 集群,具有集群管理员访问权限。
  • 您已在 OpenShift 中配置了集群范围的证书。
  • 您已配置了单型号服务平台,如 安装单一模式服务平台 中所述。

流程

  1. 登录 OpenShift 控制台。
  2. 从项目列表中,打开 openshift-ingress 项目。
  3. YAML
  4. 搜索 "cert" 以查找带有 "cert" 的名称的 secret。例如,rhods-internal-primary-cert-bundle-secret。secret 的内容应包含用于所有 OpenShift 路由的两个项目: tls.cert (证书)和 tls.key (密钥)。
  5. 复制对 secret 的引用。
  6. 从项目列表中,打开 istio-system 项目。
  7. 创建 YAML 文件,并粘贴对从 openshift-ingress YAML 文件复制的 secret 的引用。
  8. 编辑 YAML 代码,使其仅保留相关内容,如下例所示。将 rhods-internal-primary-cert-bundle-secret 替换为 secret 的名称:

    kind: Secret
    apiVersion: v1
    metadata:
    name: rhods-internal-primary-cert-bundle-secret
    data:
    tls.crt: >-
        LS0tLS1CRUd...
    tls.key: >-
        LS0tLS1CRUd...
    type: kubernetes.io/tls
    Copy to Clipboard Toggle word wrap
  9. 将 YAML 文件保存到 istio-system 项目中。
  10. 导航到 Operators Installed Operators Red Hat OpenShift AI
  11. Data Science Cluster*,然后点 default-dsc YAML
  12. 编辑 kserve 配置 部分以引用您的 secret,如下例所示。将 rhods-internal-primary-cert-bundle-secret 替换为在第 8 步中创建的 secret 的名称。

    kserve:
    devFlags: {}
    managementState: Managed
    serving:
        ingressGateway:
        certificate:
            secretName: rhods-internal-primary-cert-bundle-secret
            type: Provided
        managementState: Managed
        name: knative-serving
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部