3.3. Leader Worker Set Operator による分散ワークロードの管理
Leader Worker Set Operator を使用すると、分散推論ワークロードを管理し、大規模な推論リクエストを効率的に処理できます。
3.3.1. Leader Worker Set Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールから Leader Worker Set Operator をインストールし、分散 AI ワークロードの管理を開始できます。
前提条件
-
cluster-admin権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- cert-manager Operator for Red Hat OpenShift がインストールされている。
手順
- OpenShift Container Platform Web コンソールにログインします。
- cert-manager Operator for Red Hat OpenShift がインストールされていることを確認します。
Leader Worker Set Operator をインストールします。
-
Operators
OperatorHub に移動します。 - フィルターボックスに Leader Worker Set Operator と入力します。
- Leader Worker Set Operator を選択し、Install をクリックします。
Install Operator ページで以下を行います。
- Update channel を stable-v1.0 に設定します。これにより、Leader Worker Set Operator 1.0 の最新の安定版リリースがインストールされます。
- Installation mode で、A specific namespace on the cluster を選択します。
- Installed Namespace の下で、Operator recommended Namespace: openshift-lws-operator を選択します。
Update approval で、次のいずれかの更新ストラテジーを選択します。
- Automatic ストラテジーを使用すると、新しいバージョンが利用可能になったときに、Operator Lifecycle Manager (OLM) によって Operator を自動的に更新できます。
- Manual ストラテジーには、Operator の更新を承認するための適切な認証情報を持つユーザーが必要です。
- Install をクリックします。
-
Operators
Leader Worker Set Operator のカスタムリソース (CR) を作成します。
-
Installed Operators
Leader Worker Set Operator に移動します。 - Provided APIs の下にある LeaderWorkerSetOperator ペインで Create instance をクリックします。
- Create をクリックします。
-
Installed Operators
3.3.2. リーダーワーカーセットのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator を使用すると、リーダーワーカーセットをデプロイして、複数のノード間で分散されるワークロードの管理を支援できます。
前提条件
- Leader Worker Set Operator をインストールした。
手順
次のコマンドを実行して新しいプロジェクトを作成します。
oc new-project my-namespace
$ oc new-project my-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow leader-worker-set.yamlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各項目の説明:
metadata.name- リーダーワーカーセットリソースの名前を指定します。
metadata.namespace- リーダーワーカーの実行に使用する namespace を指定します。
spec.leaderWorkerTemplate.leaderTemplate- リーダー Pod の Pod テンプレートを指定します。
spec.leaderWorkerTemplate.restartPolicy-
Pod の問題が発生した場合にの再起動ポリシーを指定します。使用できる値は、グループ全体を再起動する
RecreateGroupOnPodRestartか、グループを再起動しないNoneです。 spec.leaderWorkerTemplate.size-
リーダー Pod を含む、各グループに作成する Pod の数を指定します。たとえば、値が
3の場合、リーダー Pod 1 個とワーカー Pod 2 個が作成されます。デフォルト値は1です。 spec.leaderWorkerTemplate.workerTemplate- ワーカー Pod の Pod テンプレートを指定します。
spec.networkConfig.subdomainPolicy-
ヘッドレスサービスの作成時に使用するポリシーを指定します。使用できる値は
UniquePerReplicaまたはSharedです。デフォルト値はSharedです。 spec.replicas-
レプリカまたは リーダーワーカー グループの数を指定します。デフォルト値は
1です。 spec.rolloutStrategy.rollingUpdateConfiguration.maxSurge-
ローリング更新中にレプリカ値を超えてスケジュールできる
レプリカの最大数を指定します。値は整数またはパーセンテージで指定できます。
設定可能なすべてのフィールドの詳細は、LeaderWorkerSet API のアップストリームドキュメントを参照してください。
次のコマンドを実行して、リーダーワーカーセットの設定を適用します。
oc apply -f leader-worker-set.yaml
$ oc apply -f leader-worker-set.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Pod が作成されたことを確認します。
oc get pods -n my-namespace
$ oc get pods -n my-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
my-lws-0は、最初のグループのリーダー Pod です。 -
my-lws-1は 2 番目のグループのリーダー Pod です。
-
次のコマンドを実行して、ステートフルセットを確認します。
oc get statefulsets
$ oc get statefulsetsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY AGE my-lws 4/4 111s my-lws-0 2/2 57s my-lws-1 2/2 60s
NAME READY AGE my-lws 4/4 111s my-lws-0 2/2 57s my-lws-1 2/2 60sCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
my-lwsは、すべてのリーダーワーカーグループのリーダーステートフルセットです。 -
my-lws-0は、最初のグループのワーカーステートフルセットです。 -
my-lws-1は 2 番目のグループのワーカーステートフルセットです。
-