4.4. シングルモデルサービングプラットフォームの認可プロバイダーの追加
シングルモデルサービングプラットフォームの認可プロバイダーとして Authorino を追加できます。認可プロバイダーを追加すると、プラットフォームにデプロイするモデルに対してトーク認証を有効にできます。これにより、認可されたユーザーのみがモデルに対して推論リクエストを行うことができます。
Authorino を認可プロバイダーとして追加する方法は、シングルモデルサービングプラットフォームのインストール方法により異なります。プラットフォームのインストールオプションは次のとおりです。
- 自動インストール
OpenShift クラスターに
ServiceMeshControlPlaneまたはKNativeServingリソースをまだ作成していない場合は、KServe とその依存関係をインストールするように Red Hat OpenShift AI Operator を設定できます。Authorino を自動インストールプロセスの一部として含めることができます。Authorino を含む自動インストールの詳細は、KServe の自動インストールの設定 を参照してください。
- 手動インストール
OpenShift クラスターに
ServiceMeshControlPlaneまたはKNativeServingリソースをすでに作成している場合は、KServe とその依存関係をインストールするように Red Hat OpenShift AI Operator を 設定できません。この状況では、KServe を手動でインストールする必要があります。Authorino も手動で設定する必要があります。Authorino を含む手動インストールの詳細は、KServe の手動インストール を参照してください。
注記シングルモデルサービングプラットフォームの手動インストール中に、KServe を
Unmanagedモードで実行できます。 このモードは、KServe コントローラーのリソース制限の変更など、KServe コンポーネントをより詳細に制御する必要がある場合に便利です。
4.4.1. 認可プロバイダーを手動で追加する リンクのコピーリンクがクリップボードにコピーされました!
シングルモデルサービングプラットフォームの認可プロバイダーとして Authorino を追加できます。認可プロバイダーを追加すると、プラットフォームにデプロイするモデルに対してトーク認証を有効にできます。これにより、認可されたユーザーのみがモデルに対して推論リクエストを行うことができます。
Authorino を認可プロバイダーとして手動で追加するには、Red Hat - Authorino Operator をインストールし、Authorino インスタンスを作成してから、そのインスタンスを使用するように OpenShift Service Mesh および KServe コンポーネントを設定する必要があります。
認可プロバイダーを手動で追加するには、OpenShift Service Mesh インスタンスの設定を更新する必要があります。OpenShift Service Mesh インスタンスのサポート状態を維持するには、このセクションに示された更新 のみ を行ってください。
前提条件
- Authorino を認可プロバイダーとして追加するためのオプションを確認し、手動インストールが適切なオプションであることを確認した。認可プロバイダーの追加 を参照してください。
- OpenShift Service Mesh を含め、KServe とその依存関係が手動でインストールされている。KServe の手動インストール を参照してください。
-
KServe を手動でインストールした際に、
serviceMeshコンポーネントのmanagementStateフィールドの値がUnmanagedに設定されている。Authorino を手動で追加する場合はこの設定が必要です。KServe のインストール を参照してください。
4.4.2. Red Hat Authorino Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Authorino を認可プロバイダーとして追加する前に、OpenShift クラスターに Red Hat - Authorino Operator をインストールする必要があります。
前提条件
- OpenShift クラスターのクラスター管理者権限を持っている。
手順
- OpenShift Web コンソールにクラスター管理者としてログインします。
-
Web コンソールで Operators
OperatorHub をクリックします。 - OperatorHub ページの Filter by keyword フィールドに、Red Hat - Authorino と入力します。
- Red Hat - Authorino Operator をクリックします。
- Red Hat - Authorino Operator ページで、Operator 情報を確認して Install をクリックします。
Install Operator ページで、Installation mode、Installed Namespace、Update Approval のデフォルト値をそのままにします。
- Update channel は、Stable を選択します。
- Version には 1.2.1 以降を選択します。
- Install をクリックします。
検証
OpenShift Web コンソールで、Operators
Installed Operators をクリックし、 Red Hat - AuthorinoOperator が以下のいずれかのステータスを示していることを確認します。-
Installing- インストールが進行中です。Succeededが表示されるまで待機してください。これには数分かかる場合があります。 -
Succeeded- インストールに成功しました。
-
4.4.3. Authorino インスタンスの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift クラスターに Red Hat - Authorino Operator をインストールしたら、Authorino インスタンスを作成する必要があります。
前提条件
-
Red Hat - AuthorinoOperator がインストールされている。 OpenShift Service Mesh インスタンスが作成されたプロジェクトにリソースを追加する権限がある。OpenShift Service Mesh インスタンスの作成 を参照してください。
OpenShift のパーミッションの詳細は、RBAC を使用したパーミッションの定義および適用 (Red Hat OpenShift Dedicated) または RBAC を使用したパーミッションの定義および適用 (Red Hat OpenShift Service on AWS) を参照してください。
手順
- 新しいターミナルウィンドウを開きます。
次のように OpenShift コマンドラインインターフェイス (CLI) にログインします。
oc login <openshift_cluster_url> -u <username> -p <password>
$ oc login <openshift_cluster_url> -u <username> -p <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Authorino インスタンスのインストールに使用する namespace を作成します。
oc new-project <namespace_for_authorino_instance>
$ oc new-project <namespace_for_authorino_instance>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記自動インストールプロセスにより、Authorino インスタンス用に
redhat-ods-applications-auth-providerという namespace が作成されます。手動インストールで使用する namespace も同じ名前にすることを検討してください。既存の OpenShift Service Mesh インスタンスに Authorino インスタンス用の新しい namespace を登録するには、次の内容で新しい YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - YAML ファイルを保存します。
クラスター上に
ServiceMeshMemberリソースを作成します。oc create -f <file_name>.yaml
$ oc create -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Authorino インスタンスを設定するには、次の例に示すように新しい YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - YAML ファイルを保存します。
クラスター上に
Authorinoリソースを作成します。oc create -f <file_name>.yaml
$ oc create -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Authorino デプロイメントにパッチを適用して Istio サイドカーを注入し、Authorino インスタンスを OpenShift Service Mesh インスタンスの一部にします。
oc patch deployment <name_of_authorino_instance> -n <namespace_for_authorino_instance> -p '{"spec": {"template":{"metadata":{"labels":{"sidecar.istio.io/inject":"true"}}}} }'$ oc patch deployment <name_of_authorino_instance> -n <namespace_for_authorino_instance> -p '{"spec": {"template":{"metadata":{"labels":{"sidecar.istio.io/inject":"true"}}}} }'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下の手順で、Authorino インスタンスが実行されていることを確認します。
次の例のとおり、Authorino インスタンス用に作成した namespace で実行されている Pod (およびコンテナー) を確認します。
oc get pods -n redhat-ods-applications-auth-provider -o="custom-columns=NAME:.metadata.name,STATUS:.status.phase,CONTAINERS:.spec.containers[*].name"
$ oc get pods -n redhat-ods-applications-auth-provider -o="custom-columns=NAME:.metadata.name,STATUS:.status.phase,CONTAINERS:.spec.containers[*].name"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力が次の例のようになっていることを確認します。
NAME STATUS CONTAINERS authorino-6bc64bd667-kn28z Running authorino,istio-proxy
NAME STATUS CONTAINERS authorino-6bc64bd667-kn28z Running authorino,istio-proxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例が示すとおり、Authorino インスタンスには実行中の Pod が 1 つあります。Pod には、Authorino 用のコンテナーと、注入した Istio サイドカー用のコンテナーがあります。
4.4.4. Authorino を使用するための OpenShift Service Mesh インスタンス設定 リンクのコピーリンクがクリップボードにコピーされました!
Authorino インスタンスを作成したら、Authorino を認可プロバイダーとして使用するように OpenShift Service Mesh インスタンスを設定する必要があります。
OpenShift Service Mesh インスタンスがサポートのサポート状態維持するには、次の手順に示す設定の更新 のみ を行ってください。
前提条件
- Authorino インスタンスが作成され、OpenShift Service Mesh インスタンスに Authorino インスタンスの namespace が登録されている。
- OpenShift Service Mesh インスタンスを変更する権限がある。OpenShift Service Mesh インスタンスの作成 を参照してください。
手順
OpenShift Service Mesh インスタンスの更新権限を持つユーザーとして OpenShift クラスターにログインしていない場合は、次の例のとおりターミナルウィンドウで OpenShift CLI にログインします。
oc login <openshift_cluster_url> -u <username> -p <password>
$ oc login <openshift_cluster_url> -u <username> -p <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容で新しい YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - YAML ファイルを保存します。
oc patchコマンドを使用して、YAML ファイルを OpenShift Service Mesh インスタンスに適用します。oc patch smcp <name_of_service_mesh_instance> --type merge -n <namespace_for_service_mesh_instance> --patch-file <file_name>.yaml
$ oc patch smcp <name_of_service_mesh_instance> --type merge -n <namespace_for_service_mesh_instance> --patch-file <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要OpenShift Service Mesh インスタンスで他のエクステンションプロバイダーを指定していない場合に 限り、パッチとして表示される設定を適用できます。他のエクステンションプロバイダーをすでに指定している場合は、
ServiceMeshControlPlaneリソースを手動で編集して設定を追加する必要があります。
検証
以下の手順を実行して、Authorino インスタンスが OpenShift Service Mesh 設定にエクステンションプロバイダーとして追加されていることを確認します。
OpenShift Service Mesh インスタンスの
ConfigMapオブジェクトを検査します。oc get configmap istio-<name_of_service_mesh_instance> -n <namespace_for_service_mesh_instance> --output=jsonpath={.data.mesh}$ oc get configmap istio-<name_of_service_mesh_instance> -n <namespace_for_service_mesh_instance> --output=jsonpath={.data.mesh}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような出力が表示されることを確認します。これは、Authorino インスタンスがエクステンションプロバイダーとして正常に追加されたことを示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.5. KServe の認可設定 リンクのコピーリンクがクリップボードにコピーされました!
Authorino を使用するようにシングルモデルサービングプラットフォームを設定するには、モデルのデプロイ時に作成される KServe プリディクター Pod に適用されるグローバル AuthorizationPolicy リソースを作成する必要があります。さらに、モデルに対して推論リクエストを行うときに発生する複数のネットワークホップを考慮するには、HTTP ホストヘッダーを最初に推論リクエストに含まれていたものに継続的にリセットする EnvoyFilter リソースを作成する必要があります。
前提条件
- Authorino インスタンスを作成し、それを使用するように OpenShift Service Mesh を設定した。
- クラスター上の KServe デプロイメントを更新する権限がある。
- OpenShift Service Mesh インスタンスが作成されたプロジェクトにリソースを追加する権限がある。OpenShift Service Mesh インスタンスの作成 を参照してください。
手順
KServe デプロイメントの更新権限を持つユーザーとして OpenShift クラスターにログインしていない場合は、次の例のとおりターミナルウィンドウで OpenShift CLI にログインします。
oc login <openshift_cluster_url> -u <username> -p <password>
$ oc login <openshift_cluster_url> -u <username> -p <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容で新しい YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定する名前は、OpenShift Service Mesh インスタンスに追加したエクステンションプロバイダーの名前と一致する必要があります。
- YAML ファイルを保存します。
OpenShift Service Mesh インスタンスの namespace に
AuthorizationPolicyリソースを作成します。oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
$ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容で、別の新しい YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示されている
EnvoyFilterリソースは、HTTP ホストヘッダーを、推論リクエストに最初に含まれていたものに継続的にリセットします。OpenShift Service Mesh インスタンスの namespace に
EnvoyFilterリソースを作成します。oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
$ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
AuthorizationPolicyリソースが正常に作成されたことを確認します。oc get authorizationpolicies -n <namespace_for_service_mesh_instance>
$ oc get authorizationpolicies -n <namespace_for_service_mesh_instance>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような出力が表示されることを確認します。
NAME AGE kserve-predictor 28h
NAME AGE kserve-predictor 28hCopy to Clipboard Copied! Toggle word wrap Toggle overflow EnvoyFilterリソースが正常に作成されたことを確認します。oc get envoyfilter -n <namespace_for_service_mesh_instance>
$ oc get envoyfilter -n <namespace_for_service_mesh_instance>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような出力が表示されることを確認します。
NAME AGE activator-host-header 28h
NAME AGE activator-host-header 28hCopy to Clipboard Copied! Toggle word wrap Toggle overflow