フリートのワークロード
IBM Cloud® Code Engine 完全に管理されたサーバーレスプラットフォームであり、フリートワークロードを含むコンテナ化されたワークロードを実行します。 フリートの Code Engine 運用について学ぶ
フリートとは何か?
フリートはサーバーレスフリートとも呼ばれ、 Code Engine、ユーザーコードの1つまたは複数のインスタンスを並列に実行し、計算集約的なタスクの大きなキューを完了させるコンピュートコンポーネントである。 フリートは仮想プライベート・クラウドに接続し、ユーザーのデータやサービスと安全に相互運用することができる。 バッチジョブとは異なり、フリートは動的なタスクキューイングとシングルテナント分離を提供し、 vCPU と GPU の両方に対応しています。
フリートはどのように機能するのか?
フリートには、タスク、インスタンス、ワーカーノードという3つの主要な要素がある。 ひとつのタスクは、ワーカー・ノード上で実行されるユーザー・コードのインスタンスひとつで完了する。 各ワーカーノードは複数のタスクを同時に実行できるため、多くのタスクを並行して完了させることができる。 タスクが完了すると、新しいインスタンスがワーカーノード上でスピンアップし、キューで次に利用可能なタスクを完了させる。 このプロセスは、すべてのタスクが完了するまで各ワーカーノードで繰り返され、その時点でワーカーノードは自動的にデプロビジョニングされます。
フリートと仕事はどう違うのか?
主に小規模から中規模のタスクを対象とするバッチジョブとは異なり、フリートは大規模で計算負荷の高いタスクを完了するように設計されている。 仕事とフリートの具体的な違いについては、以下の表をご覧ください。
| 特性 | フリート | ジョブ |
|---|---|---|
| 分離 | シングル・テナント | マルチテナント |
| タスクサイズ | 大きな仕事 | 中小規模のタスク |
| 実装 | 動的キュー | 静的配列 |
| マシン構成 | マシンプロファイルのフルコントロール | マシンのプロファイルを制御できない |
| VPC接続 | 既存のVPCにネイティブ接続 | プライベートパスが必要 |
Code Engine、どのような特徴がありますか?
Code Engine におけるフリートとの協働について詳しくは、以下のトピックをご覧ください。
自動スケーリング
Code Engine。フリート内のワーカーノードは、リソース要件を最も効率的に満たすように自動的にスケーリングされます。 デプロイされるワーカーのプロファイルを Code Engine に決定させることも、GPU タイプなど特定のプロファイルを選択することもできます。 どちらの場合でも、 Code Engine、作業員数を自動的に調整し、最大の効率レベルを実現する。
デプロイされるワーカーの数は、完了すべきタスクの数、コードのインスタンスに必要なリソース、一度に実行したい同時インスタンスの最大数に基づいている。 これらの設定を調整することで、わずか1件から数百万件までのタスクを完了させるためにフリート規模を拡大することができる。
例えば、4つのタスクがあるとする。 タスクを完了するコードの各インスタンスには 1 vCPU and 2 GB memory が必要で、合計で 4 vCPU and 8GB memory が必要となる。 最大同時インスタンス数を2に設定すると、 Code Engine、1つのワーカーノードを 2 vCPU and 4 GB memory 、同時に2つのインスタンスを実行するようにデプロイできる。
最大同時インスタンス数を4に設定した場合、 Code Engine、同じワーカーノードを2台デプロイして、両方のワーカーで4つのインスタンスを同時に実行することができます。 2つ目のシナリオでは、フリートはより早く終了するが、より多くの労働者を配置する必要がある。 ワーカーノードの自動デプロイには無限の組み合わせがあり、さまざまなプロファイルのワーカーノードがデプロイされる可能性があることに注意してください。
GPUでは自動スケーリングは利用できません。 フリート用に GPU をデプロイするには、デプロイする GPU ワーカーのタイプを指定する必要があります。
タスクとインスタンスの仕様
フリート展開の際、ユーザーは完了するタスクの数、一度に実行するインスタンスの数、タスクを完了する順序を指定できる。 フリートは、複数のインスタンスを同時に起動することで、多くのタスクを並行して進めることができる。 すべてのインスタンスは、艦隊の仕様と同じ量の vCPU とメモリで作成される。 さらに、ユーザーはタスク仕様ファイルを作成して、各タスクに特定のコマンドと引数を提供したり、カスタムタスクインデックスを作成したりすることができる。
COSのタスクストレージ
フリート作成時に永続データストアとバケットサブパスを指定することで、フリート用のタスクを提供するためにCOSバケットを使用できます。 COSバケット内の各オブジェクトは1つのタスクを表す。
分離
バッチジョブとは異なり、フリートはシングルテナントの分離を提供する。 あなたのフリートワーカーは他のユーザーと共有されません。
再試行
各フリート・インスタンスは完了まで実行される。 ただし、エラーが発生した場合は、 Code Engine、インスタンスを再起動する。 失敗したインスタンスの再起動を避けるために、最大再試行回数を制限することができます。
ステータス
少なくとも1つのワーカーノードがプロビジョニングされると、フリートは Running のステータスになります。 艦隊が稼働を停止した際、すべてのタスクが正常に完了した場合は「正常 Succeeded 」状態となり、1つ以上のタスクが失敗した場合は Failed 「異常」状態となる。 また、フリートをキャンセルすることもできる。
詳しくは、 フリート状況を把握するを ご覧ください。
労働者プロフィール
任意で、現場作業員のプロファイルを選択できます。 プロファイルを指定しない場合、 Code Engine がプロファイルを選択します。
Code Engine 艦隊は次のプロファイルファミリをサポートします:
| インスタンス・プロファイル |
|---|
| bx2-2x8 |
| bx2-4x16 |
| bx2-8x32 |
| bx2-16x64 |
| bx2-32x128 |
| bx2-48x192 |
| bx2-64x256 |
| bx2-96x384 |
| bx2-128x512 |
| bx2a-2x8 |
| bx2a-4x16 |
| bx2a-8x32 |
| bx2a-16x64 |
| bx2a-32x128 |
| bx2a-48x192 |
| bx2a-64x256 |
| bx2a-96x384 |
| bx2a-128x512 |
| bx2a-228x912 |
| bx2d-2x8 |
| bx2d-8x32 |
| bx2d-16x64 |
| bx3d-2x10 |
| bx3d-4x20 |
| bx3d-8x40 |
| bx3d-16x80 |
| bx3d-24x120 |
| bx3d-32x160 |
| bx3d-48x240 |
| bx3d-64x320 |
| インスタンス・プロファイル |
|---|
| cx2-2x4 |
| cx2-4x8 |
| cx2-8x16 |
| cx2-16x32 |
| cx2-32x64 |
| cx2-48x96 |
| cx2-64x128 |
| cx2-96x192 |
| cx2-128x256 |
| cx3d-2x5 |
| cx3d-4x10 |
| cx3d-8x20 |
| cx3d-16x40 |
| cx3d-24x60 |
| cx3d-32x80 |
| cx3d-48x120 |
| cx3d-64x160 |
| インスタンス・プロファイル |
|---|
| mx2-2x16 |
| mx2-4x32 |
| mx2-8x64 |
| mx2-16x128 |
| mx2-32x256 |
| mx2-48x384 |
| mx2-64x512 |
| mx2-96x768 |
| mx2-128x1024 |
| mx2d-16x128 |
| mx2d-64x512 |
| mx2d-96x768 |
| mx3d-2x20 |
| mx3d-4x40 |
| mx3d-8x16 |
| mx3d-16x160 |
| mx3d-24x240 |
| mx3d-32x320 |
| mx3d-48x480 |
| mx3d-64x640 |
| インスタンス・プロファイル |
|---|
| gx3-16x80x1l4 |
| gx3-32x160x2l4 |
| gx3-64x320x4l4 |
| gx3-24x120x1l40s |
| gx3-48x240x2l40s |
| gx2-8x64x1v100 |
| gx2-16x128x1v100 |
| gx2-16x128x2v100 |
| gx2-32x256x2v100 |
| gx3d-24x120x1a100p |
| gx3d-48x240x2a100p |
| gx3d-160x1792x8h100 |
| インスタンス・プロファイル |
|---|
| nxf-2x1 |
| nxf-2x2 |
| bxf-2x8 |
| bxf-4x16 |
| bxf-8x32 |
| bxf-16x64 |
| bxf-24x96 |
| bxf-32x128 |
| bxf-48x192 |
| bxf-64x256 |
| cxf-2x4 |
| cxf-4x8 |
| cxf-8x16 |
| cxf-16x32 |
| cxf-24x48 |
| cxf-32x64 |
| cxf-48x96 |
| cxf-64x128 |
| mxf-2x16 |
| mxf-4x32 |
| mxf-8x64 |
| mxf-16x128 |
| mxf-24x192 |
| mxf-32x256 |
| mxf-48x384 |
| mxf-64x512 |
一部のプロファイルは、すべてのVPCネットワークゾーンで利用できない場合があります。 以下の CLI コマンドを使用して、リージョン内のプロファイルを一覧表示できます。
ibmcloud is instance-profiles
- H100 や L40s などの特定プロファイルのゾーン別可用性と容量を知りたい場合は、 サポートケースを開き、トピックとして「Virtual Private Cloud (VPC)」を選択してください。
- 現在Fleetsでサポートされていない特定のVPCプロファイルが必要な場合は、 サポートケースを開き、トピックとして「 Code Engine 」を選択してください。
フリートはどうすれば始められますか?
icr.io/codeengine/helloworld サンプルイメージでシンプルな Code Engine フリート を作成して実行するには、 最初の Code Engine フリート を実行する を参照してください。