8.5. OpenShift AI コンポーネントでの自己署名証明書の使用
一部の OpenShift AI コンポーネントには、自己署名証明書用の追加オプションまたは必要な設定があります。
8.5.1. 自己署名証明書を使用した S3 互換オブジェクトストレージへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
自己署名証明書を使用する OpenShift クラスター内にデプロイされたオブジェクトストレージソリューションまたはデータベースに OpenShift AI コンポーネントを安全に接続するには、認証局 (CA) 証明書を提供する必要があります。各 namespace には、kube-root-ca.crt という名前の ConfigMap が含まれており、ここには内部 API サーバーの CA 証明書が含まれています。
前提条件
- OpenShift クラスターのクラスター管理者権限を持っている。
- 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 kube-root-ca.crt内の認証局が発行した証明書を信頼するように、OpenShift AI の信頼された CA 設定を更新します。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 チュートリアル - 不正検出例 の手順に従って、新しい証明書の設定を確認できます。スクリプトを実行してローカルオブジェクトストレージバケットをインストールし、接続を作成してから、データサイエンスパイプラインを有効にします。
スクリプトを実行してローカルオブジェクトストレージバケットをインストールする方法の詳細は、スクリプトを実行してローカルオブジェクトストレージバケットをインストールし、接続を作成する を参照してください。
データサイエンスパイプラインの有効化に関する詳細は、データサイエンスパイプラインの有効化 を参照してください。
8.5.2. データサイエンスパイプラインの証明書の設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift AI には OpenShift クラスター全体の証明書が odh-trusted-ca-bundle ConfigMap に含まれています。これらのクラスター全体の証明書は、ワークベンチやモデルサーバーなどのほとんどのコンポーネントをカバーします。ただし、パイプラインサーバーは、特に自己署名証明書またはカスタム証明書を使用する外部システムと対話する場合、追加の認証局 (CA) 設定が必要になる可能性があります。
データサイエンスパイプラインの証明書の追加方法には、次のオプションがあります。
- クラスター全体の CA バンドルに証明書を追加する の説明に従って、クラスター全体の CA バンドルに追加します。
- もしくは、証明書をカスタム CA バンドル二追加する の説明に従って、証明書をカスタム CA バンドルに追加することもできます。
- 次の手順で説明するように、データサイエンスパイプラインにのみ使用される CA バンドルを提供します。
前提条件
- Red Hat OpenShift AI がインストールされている OpenShift クラスターに対するクラスター管理者アクセス権がある。
-
自己署名証明書を作成し、証明書をファイルに保存した。たとえば、OpenSSL を使用して証明書を作成し、
example-ca.crtという名前のファイルに保存したとします。 - データサイエンスパイプラインサーバーを設定した。
手順
- OpenShift コンソールにログインします。
Workloads
ConfigMaps から、ターゲットデータサイエンスパイプラインと同じデータサイエンスプロジェクトに必要なバンドルを含む ConfigMap を作成します。 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のスニペットを、基盤となるデータサイエンスパイプラインアプリケーション (DSPA) の
.spec.apiserver.caBundleフィールドに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ConfigMap を保存します。パイプラインサーバー Pod は、更新されたバンドルを使用して自動的に再デプロイされます。
検証
CA バンドルが正常にマウントされたことを確認します。
- OpenShift コンソールにログインします。
- 対象のデータサイエンスパイプラインがあるデータサイエンスプロジェクトに移動します。
- Pods タブをクリックします。
-
ds-pipeline-dspa-<hash>の接頭辞を持つパイプラインサーバー Pod をクリックします。 - Terminal をクリックします。
-
cat/dsp-custom-certs/dsp-ca.crtと入力します。 - CA バンドルがこのファイル内に存在することを確認します。
8.5.3. ワークベンチの証明書の設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、自己署名証明書は、クラスター全体の証明書を設定した後に作成するワークベンチに適用されます。既存のワークベンチにクラスター全体の証明書を適用するには、ワークベンチを停止してから再起動します。
自己署名証明書は /etc/pki/tls/custom-certs/ca-bundle.crt に保存されます。ワークベンチは、多くの一般的な HTTP クライアントパッケージが証明書に指定する事前設定された環境変数を使用します。デフォルトで含まれていないパッケージの場合は、この証明書パスを指定できます。たとえば、kfp パッケージがデータサイエンスパイプラインサーバーに接続する場合は、次のようにします。
8.5.4. シングルモデルサービングプラットフォーム用のクラスター全体の CA バンドルを使用する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift AI のシングルモデルサービングプラットフォームは、サーバーのデプロイ時に作成されるエンドポイントのインストール時に生成される自己署名証明書を使用します。
OpenShift クラスターでクラスター全体の証明書を設定している場合は、ルートのエンドポイントなど、他のタイプのエンドポイントにデフォルトで使用されます。
次の手順では、OpenShift クラスターにすでにある証明書と同じ証明書を使用する方法を説明します。
前提条件
- Red Hat OpenShift AI がインストールされている OpenShift クラスターに対するクラスター管理者アクセス権がある。
- OpenShift でクラスター全体の証明書を設定した。
- シングルモデルサービングプラットフォームを設定している (シングルモデルサービングプラットフォーのインストール を参照)。
手順
- OpenShift コンソールにログインします。
-
プロジェクトのリストから、
openshift-ingressプロジェクトを開きます。 - YAML をクリックします。
-
"cert" を検索して、名前に "cert" が含まれるシークレットを見つけます。たとえば、
rhods-internal-primary-cert-bundle-secretなどです。シークレットの内容には、すべての OpenShift ルートに使用される 2 つの項目、tls.cert(証明書) とtls.key(キー) が含まれている必要があります。 - シークレットへの参照をコピーします。
-
プロジェクトリストから、
istio-systemプロジェクトを開きます。 -
YAML ファイルを作成し、
openshift-ingressYAML ファイルからコピーしたシークレットへの参照を貼り付けます。 次の例に示すように、関連する内容のみを保持するように YAML コードを編集します。
rhods-internal-primary-cert-bundle-secretは、シークレットの名前に置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
YAML ファイルを
istio-systemプロジェクトに保存します。 -
Operators
Installed Operators Red Hat OpenShift AI に移動します。 -
Data Science Cluster* をクリックし、default-dsc
YAML をクリックします。 次の例に示すように、シークレットを参照するように
kserve設定セクションを編集します。rhods-internal-primary-cert-bundle-secretは、手順 8 で作成したシークレットの名前に置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow