すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ack EdgeクラスターでのACK-kserveコンポーネントのデプロイと管理

最終更新日:Feb 12, 2025

KServeは、Kubernetesでの機械学習モデルのデプロイと実行のプロセスを簡素化するために設計されたオープンソースプロジェクトです。 複数の機械学習フレームワークをサポートし、自動スケーリング機能を提供します。 さらに、定義したYAMLファイルに基づいてモデルをデプロイするための宣言型API操作も提供します。 このように、KServeはサービスとしてデプロイされるモデルの構成と管理を簡素化します。 このトピックでは、Container Service for Kubernetes (ack) クラスターにACK-kserveコンポーネントをデプロイおよび管理する方法について説明します。

前提条件

手順1: cert-managerコンポーネントのインストール

cert-managerコンポーネントがすでにACKクラスターにインストールされている場合は、この手順をスキップしてください。

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

  3. [Helm] ページで、[デプロイ] をクリックします。 [デプロイ] パネルで、[アプリケーション名] パラメーターをcert-managerに設定します。 [グラフ] セクションで、cert-managerを検索して選択します。 そして、[次へ] をクリックします。 確認メッセージで、[はい] をクリックします。 グラフはデフォルトでcert-manager名前空間にインストールされます。

  4. [パラメーター] ステップで、[チャートバージョン] パラメーターの値と [パラメーター] フィールドに表示される情報を確認し、[OK] をクリックします。

    cert-managerコンポーネントがデプロイされると、cert-managerコンポーネントの詳細ページが表示されます。 [基本情報] タブで、cert-managerコンポーネントに関する情報を表示できます。

ステップ2: ack-kserveをインストールする

既定では、ack-kserveコンポーネントはRaw Deploymentモードでデプロイされ、Nginx Ingressコントローラーと統合されます。

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

  3. [Helm] ページで、[デプロイ] をクリックします。 [デプロイ] パネルで、[アプリケーション名] パラメーターをack-kserveに設定します。 [チャート] セクションで、ack-kserveを検索して選択します。 そして、[次へ] をクリックします。 確認メッセージで、[はい] をクリックします。 グラフはデフォルトでkserve名前空間にインストールされます。

  4. [パラメーター] ステップで、[チャートバージョン] パラメーターの値と [パラメーター] フィールドに表示される情報を確認し、[OK] をクリックします。

    ack-kserveコンポーネントがデプロイされると、ack-kserveコンポーネントの詳細ページが表示されます。 ack-kserveコンポーネントに関する情報は、[基本情報] タブで確認できます。

  5. kserveでinferenceservice-config設定を変更します。

    Helmページで、kserveをクリックし、inferenceservice-configをクリックし、YAMLの編集をクリックします。 YAMLファイルのingressClassNameフィールドを、NGINX Ingressコントローラーのインストール時に指定したingressClassResource.nameに一致するように変更します。image

  6. ack-kserveコンポーネントが実行されているかどうかを確認します。

    次のコマンドを実行して、kserve名前空間のポッドが実行中の状態であるかどうかを確認します。

    kubectl get pod -n kserve

    期待どおりに出力のSTATUSパラメーターに対してrunningが返された場合、ack-kserveコンポーネントがインストールされます。

ステップ3: (オプション) ack-kserve ️ コンポーネントの表示または更新

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

  3. ack-kserveコンポーネントの詳細を表示します。

    Helmページでack-kserveコンポーネントを見つけ、[操作] 列の [詳細の表示] をクリックします。 ack-kserveコンポーネントの詳細ページで、[基本情報] 、[パラメータ] 、および [履歴] タブの情報を表示します。

  4. ack-kserveコンポーネントを更新します。

    Helmページでack-kserveコンポーネントを見つけ、[操作] 列の [更新] をクリックします。 [リリースの更新] パネルで、コンポーネントのバージョンを変更し、パラメーター設定を変更します。

ステップ4: (オプション) ack-kserveコンポーネントのアンインストール

  1. ack-KServeコンポーネントをアンインストールする前に、ack-kserveコンポーネントがインストールされているクラスターのkserveカスタムリソース (CR) とカスタムリソース定義 (CRD) を削除します。 これにより、リソースの無駄を防ぎます。

    重要

    削除する前に、ビジネスにCRとCRDが不要になったことを確認してください。 CRDを削除すると、それに依存するCRも削除され、復元できません。

    1. 不要になったことを確認した後、クラスター内のすべてのKServe CRを削除します。 次のコマンドを実行して、CRを削除できます。

      # View all CRs in the cluster. 
      kubectl get isvc --all-namespaces
      
      # Save all CRs in the cluster. 
      kubectl get isvc --all-namespaces -oyaml > isvc.yaml.bak
      
      # Delete the CRs after you make sure that you no longer require them. 
      kubectl delete isvc --all
    2. クラスター内のKServe CRDを削除します。

      CRDを削除する前に、CRDに依存するすべてのCRを削除してください。 そうでなければ、CRDは削除されない。

      kubectl delete crd clusterservingruntimes.serving.kserve.io
      kubectl delete crd clusterstoragecontainers.serving.kserve.io
      kubectl delete crd inferencegraphs.serving.kserve.io
      kubectl delete crd inferenceservices.serving.kserve.io
      kubectl delete crd predictors.serving.kserve.io
      kubectl delete crd servingruntimes.serving.kserve.io
      kubectl delete crd trainedmodels.serving.kserve.io
  2. ack-kserveコンポーネントをアンインストールします。

    1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

    3. Helmページでack-kserveコンポーネントを見つけ、[操作] 列の [削除] をクリックします。 [削除] ダイアログボックスで、[リリースレコードのクリア] を選択またはクリアし、[OK] をクリックします。

よくある質問

問題: ack-kserveコンポーネントのインストール時に次のエラーメッセージが表示されます。failed to call webhook: Post "https:// cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s": tls: failed to verify certificate: x509: certificate signed by unknown authority

原因: ack-kserveコンポーネントは、cert-managerコンポーネントに大きく依存しています。 インストールされていないか、クラスターに準備ができていない場合、ack-kserveコンポーネントをインストールすると前述のエラーが発生します。

解決策:

  1. 次のコマンドを実行して、cert-managerコンポーネントがクラスターにインストールされているかどうかを確認します。

    kubectl get crd |grep certificates.cert-manager.io

    次の出力が返されると、cert-managerコンポーネントがクラスターにインストールされます。

    certificates.cert-manager.io                         2024-05-06T07:09:17Z

    cert-managerコンポーネントのCRDがクラスターで使用できない場合は、cert-managerコンポーネントをインストールします。 詳細については、このトピックの「手順1: 証明書マネージャーコンポーネントのインストール」を参照してください。

  2. 次のコマンドを実行して、cert-managerコンポーネントの準備ができているかどうかを確認します。

    kubectl -n cert-manager get po

    次の出力が返された場合、cert-managerコンポーネントのポッドは準備ができています。

    NAME                                       READY   STATUS    RESTARTS   AGE
    cert-manager-7f4bb44d5b-jrrfn              1/1     Running   0          23h
    cert-manager-cainjector-79544456cc-qp5pp   1/1     Running   0          23h
    cert-manager-webhook-f74ccb647-7m5dt       1/1     Running   0          23h

    すべてのポッドが準備完了状態の場合、ack-kserveコンポーネントをアンインストールしてから再インストールできます。 詳細については、このトピックの「ack-kserveコンポーネントのアンインストール」を参照してください。