IBM Cloud Pak for Data (CP4D) 5.0.x では、Inference 基盤モデルを使用するサービスをインストールする場合、モデルを開始してサービスを提供するために Red Hat OpenShift AI のインストールが前提となりました。
この記事は、CP4D 5.0.2 用にRed Hat OpenShift AI バージョン 2.8.3 をインストールした際の記録です。以下のドキュメントを参照して実施しました。
CP4D 5.0.3では、Red Hat OpenShift AI バージョン 2.11が前提となっています。インストールの概要はバージョン 2.8.3と同様ですが、設定値など詳細に変更があるため、バージョン 2.11のドキュメントをご参照ください。
環境
- OCP 4.14
- Red Hat OpenShift AI 2.8.3
- CP4D 5.0.2
1. CLIを使用したRed Hat OpenShift AI Operatorのインストール
-
OpenShift コマンドラインインターフェイス (CLI) で、クラスター管理者として OpenShift Container Platform クラスターにログインします。
oc login <openshift_cluster_url> -u <admin_username> -p <password>
-
次の内容で新しい YAML ファイルを作成します。ファイル名は任意ですが、ここでは
redhat-ods.yaml
としています。redhat-ods.yamlapiVersion: v1 kind: Namespace metadata: name: redhat-ods-operator --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: rhods-operator namespace: redhat-ods-operator --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhods-operator namespace: redhat-ods-operator spec: name: rhods-operator channel: eus-2.8 source: redhat-operators sourceNamespace: openshift-marketplace config: env: - name: "DISABLE_DSC_CONFIG"
-
YAML ファイルをデプロイして、定義した namespace、Operator グループ、サブスクリプションを作成します。
$ oc create -f redhat-ods.yaml namespace/redhat-ods-operator created operatorgroup.operators.coreos.com/rhods-operator created subscription.operators.coreos.com/rhods-operator created
-
次の内容で、別の新しい YAML ファイルを作成します。ファイル名は任意ですが、ここでは
default-dsci.yaml
としています。default-dsci.yamlapiVersion: dscinitialization.opendatahub.io/v1 kind: DSCInitialization metadata: name: default-dsci spec: applicationsNamespace: redhat-ods-applications monitoring: managementState: Managed namespace: redhat-ods-monitoring serviceMesh: managementState: Removed trustedCABundle: managementState: Managed customCABundle: ""
-
YAML ファイルをデプロイして、default-dsci という DSCInitialization オブジェクトを作成します。
$ oc create -f default-dsci.yaml dscinitialization.dscinitialization.opendatahub.io/default-dsci created
検証
- Running ステータスの rhods-operator-* Pod があることを確認します。
- Ready ステータスの default-dsci オブジェクトがあることを確認します。
$ oc get pods -n redhat-ods-operator
NAME READY STATUS RESTARTS AGE
rhods-operator-58b8585597-j22bd 1/1 Running 0 3m6s
$ oc get dscinitialization
NAME AGE PHASE CREATED AT
default-dsci 4s Ready 2024-09-06T05:51:01Z
2. CLIを使用したRed Hat OpenShift AIコンポーネントの管理
-
OpenShift コマンドラインインターフェイス (CLI) で、クラスター管理者として OpenShift Container Platform クラスターにログインします。
oc login <openshift_cluster_url> -u <admin_username> -p <password>
-
次の内容で新しい YAML ファイルを作成します。ファイル名は任意ですが、ここでは
default-dsc.yaml
としています。default-dsc.yamlkind: DataScienceCluster apiVersion: datasciencecluster.opendatahub.io/v1 metadata: name: default-dsc labels: app.kubernetes.io/name: datasciencecluster app.kubernetes.io/instance: default-dsc app.kubernetes.io/part-of: rhods-operator app.kubernetes.io/managed-by: kustomize app.kubernetes.io/created-by: rhods-operator spec: components: codeflare: managementState: Removed dashboard: managementState: Removed datasciencepipelines: managementState: Removed kserve: managementState: Managed defaultDeploymentMode: RawDeployment serving: managementState: Removed name: knative-serving kueue: managementState: Removed modelmeshserving: managementState: Removed ray: managementState: Removed workbenches: managementState: Removed
-
OpenShift クラスターに DataScienceCluster オブジェクトを作成します。
$ oc create -f default-dsc.yaml datasciencecluster.datasciencecluster.opendatahub.io/default-dsc created
検証
- Running ステータスの kserve-controller-manager-* Pod があることを確認します。
$ oc get pods -n redhat-ods-applications
NAME READY STATUS RESTARTS AGE
kserve-controller-manager-749f946878-jzm4h 1/1 Running 0 15s
odh-model-controller-69dcd7db65-g7m72 1/1 Running 0 38s
odh-model-controller-69dcd7db65-m22nn 1/1 Running 0 38s
odh-model-controller-69dcd7db65-sk96t 1/1 Running 0 38s
remove-deprecated-monitoring-ss97w 0/1 Completed 0 38s
3. モデル推論設定の編集
IBM Cloud Pak for Data バージョン 5.0 以降 (watsonx.ai を含む) の特定のユースケースでは、Red Hat OpenShift AI で使用されるモデル推論設定のカスタマイズが必要になる場合があります。このようなカスタマイズを行う前に、推論設定ファイルを編集可能な状態にする必要があります。さらに、Cloud Pak for Data および watsonx.ai で OpenShift AI を使用するときにエラーが発生しないように、特定の設定の更新を行う必要があります。
-
クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
-
Web コンソールで、Workloads > ConfigMaps をクリックします。
-
Project リストで、redhat-ods-applications をクリックします。
-
ConfigMap リソースのリストで、inferenceservice-config リソースをクリックし、YAML タブをクリックします。
-
次の3か所を変更します。
a. ファイルの metadata.annotations セクションで、赤枠で囲んだようにopendatahub.io/managed: 'false'
を追加します。このアノテーションを追加すると、推論設定ファイルが編集可能になります。
b. Cloud Pak for Data (watsonx.ai を含む) で OpenShift AI を使用するときにエラーが発生しないように、次のようにdomainTemplate
フィールドの値を更新します。### 変更前 "domainTemplate": "{{ .Name }}-{{ .Namespace }}.{{ .IngressDomain }} ### 変更後 "domainTemplate": "example.com"
この新しく明示的に指定した値により、エラーの原因となる、最大長を超える
domainTemplate
フィールドの値を OpenShift AI が生成できなくなります。domainTemplate
フィールドは、OpenShift AI を Cloud Pak for Data で使用するために準備するときに KServe コンポーネント用に設定した raw デプロイメントモードでは使用されません。c. ボリュームを直接マウントし、モデルのコピーを回避するには、
enableDirectPvcVolumeMount
フィールドの値を次のように更新します。### 変更前 "enableDirectPvcVolumeMount": false ### 変更後 "enableDirectPvcVolumeMount": true
-
Saveをクリックします。