ACK 上で ML モデルをサービングするため、Alibaba Cloud に最適化された KServe ディストリビューションである ack-kserve をインストールします。
インストールでは、cert-manager と ack-kserve をデプロイします。
前提条件
以下を確認してください。
-
ACK マネージド Pro 版クラスターが作成されており、Kubernetes 1.22 以降を実行していること。
-
NGINX Ingress コントローラーがインストールされていること。
手順1:cert-manager のインストール
ack-kserve は、TLS 証明書の管理のために cert-manager に依存します。
-
ACKコンソールにログインします。左側メニューで、[クラスター] をクリックします。
-
[クラスター] ページで、対象クラスターの名前をクリックします。左側メニューで、[アプリケーション] > [Helm] を選択します。
-
[Helm] ページで、[デプロイ] をクリックします。[基本情報] で [アプリケーション名] を設定し、[Chart] セクションで
cert-managerを選択し、[次へ] をクリックします。 -
[パラメーター] で [Chart バージョン] と [パラメーター] を確認し、[OK] をクリックします。
デプロイ後、cert-manager が [Helm] ページに表示されます。
手順2:ack-kserve のインストール
デフォルトでは、ack-kserve は RawDeployment モードでデプロイされ、NGINX Ingress コントローラーと統合されます。
-
ACKコンソールにログインします。左側メニューで、[クラスター] をクリックします。
-
[クラスター] ページで、対象クラスターの名前をクリックします。左側メニューで、[アプリケーション] > [Helm] を選択します。
-
[Helm] ページで、[デプロイ] をクリックします。[基本情報] で [アプリケーション名] を設定し、[Chart] セクションで
ack-kserveを選択し、[次へ] をクリックします。 -
[パラメーター] で [Chart バージョン] と [パラメーター] を確認し、[OK] をクリックします。デプロイ後、ack-kserve が [Helm] ページに表示されます。
-
ack-kserve が実行中であることを確認します。
kubectl get pod -n kserveすべての Pod の
STATUS列にrunningと表示されていれば、ack-kserve は正常にインストールされています。
(オプション) 手順3:ack-kserve の表示または更新
コンポーネント詳細の表示
[Helm] ページで ack-kserve を見つけ、[アクション] 列の [詳細] をクリックします。 詳細ページには、[基本情報]、[パラメーター]、および[履歴] のタブが表示されます。
コンポーネントの更新
[Helm] ページで ack-kserve を探し、[アクション] 列の [更新] をクリックします。[リリースを更新] パネルで、チャートバージョンを変更するか、パラメーターを編集します。
(オプション) 手順4:ack-kserve アドオンのアンインストール
孤立リソースの発生を避けるため、次の順序でコンポーネントをアンインストールしてください。
-
KServe カスタムリソースの削除
-
KServe CustomResourceDefinition (CRD) の削除
-
ack-kserve のアンインストール
-
cert-manager のアンインストール
-
cert-manager CRD の削除
KServe カスタムリソースと CRD の削除
CRD を削除すると、関連するすべてのカスタムリソースが自動的に削除されます。削除されたカスタムリソースは復元できません。InferenceService リソースが不要になったことを確認してください。
-
すべての InferenceService カスタムリソースをバックアップして削除します。
# クラスター内のすべての InferenceService リソースを一覧表示 kubectl get isvc --all-namespaces # すべての InferenceService リソースをファイルにバックアップ kubectl get isvc --all-namespaces -oyaml > isvc.yaml.bak # すべての InferenceService リソースを削除 kubectl delete isvc --all -
KServe CRD を削除します。
説明CRD を削除する前に、すべてのカスタムリソースを削除してください。そうしないと、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
ack-kserve のアンインストール
-
ACKコンソールにログインします。左側メニューで、[クラスター] をクリックします。
-
[クラスター] ページで、対象クラスターの名前をクリックします。左側メニューで、[アプリケーション] > [Helm] を選択します。
-
[Helm] ページでack-kserve の [アクション] 列にある [削除] をクリックします。ダイアログボックスで [OK] をクリックします。
cert-manager のアンインストール
アンインストールする前に、他のクラスターコンポーネントが cert-manager に依存していないことを確認してください。使用中に cert-manager を削除すると、サービスの中断が発生します。
-
ACKコンソールにログインします。左側メニューで、[クラスター] をクリックします。
-
[クラスター] ページで、対象クラスターの名前をクリックします。左側メニューで、[アプリケーション] > [Helm] を選択します。
-
[Helm] ページでcert-manager の [アクション] 列にある [削除] をクリックします。ダイアログボックスで [OK] をクリックします。
-
cert-manager CRD を削除します。
kubectl delete crd certificaterequests.cert-manager.io kubectl delete crd certificates.cert-manager.io kubectl delete crd challenges.acme.cert-manager.io kubectl delete crd clusterissuers.cert-manager.io kubectl delete crd issuers.cert-manager.io kubectl delete crd orders.acme.cert-manager.io
トラブルシューティング
ack-kserve のインストール中のエラー:TLS 証明書の検証失敗
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 が完全に準備できていることが必要です。このエラーは、cert-manager がインストールされていないか、その Pod がまだ実行されていない場合に発生します。
-
cert-manager がインストールされているかどうかを確認します。
kubectl get crd | grep certificates.cert-manager.iocert-manager がインストールされている場合の期待される出力:
certificates.cert-manager.io 2024-05-06T07:09:17Z出力がない場合は、まず cert-manager をインストールしてください。
-
cert-manager Pod が準備できているかどうかを確認します。
kubectl -n cert-manager get poすべての Pod の
READY列に1/1と表示されるはずです。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すべての Pod が準備できている場合は、ack-kserve をアンインストールしてから再インストールしてください。