開始前の準備
予算を設定する前に、以下の前提条件を満たしてください:- CoreWeave に、ノード割り当て予算サポートと必要な権限がクラスターで有効になっていることを確認します。
- 必要なマネージドランナー更新を適用する し、ランナーが準備完了して接続されるまで待機します。
- CoreWeave Intelligent CLI v1.44.0 以降を使用し、正しい組織に認証済みで、サンドボックス管理者権限を持っている必要があります。
jqをインストールします。- ノードラベルと公開された予算を検査するための Kubernetes アクセスが必要です。予算を減らす前に、影響を受けるノードを cordon/uncordon する権限も必要です。
- デフォルトの Kubernetes スケジューラーを使用するか、スケジューラーが予算の拡張リソースを強制することを確認します。
- サンドボックスが RuntimeClass を選択する場合、クラスター管理者に nonempty
overhead.podFixedマップを宣言していることを確認します。オーバーヘッドのないランタイムは明示的なゼロ値を宣言する必要があります。RuntimeClass なしのサンドボックスはこの設定を必要としません。
ランナーとノードのラベルを特定する
更新するランナーと、予算セレクターで使用するノードのラベルを特定します。 利用可能なランナーを一覧表示します。[CLUSTER-ID] を CoreWeave Kubernetes Service (CKS) のクラスター ID に置き換えてください。
[RUNNER-ID] をランナー ID に、[KUBE-CONTEXT] をその Kubernetes コンテキストに置き換えてください。
クラスターに存在するラベルのキーと値を使用してください。
予算セレクターが選択するのは Kubernetes ノードです。API ランナーグループを選択したり、サンドボックスの配置制約、taint、トレランス、RuntimeClass を上書きしたりすることはありません。
予算の設定を作成する
以下のいずれかの例をnode-budget.json ファイルとして保存します。
まず "mode": "prepare" から始めます。準備段階では予算リソースがパブリッシュされます。適用は後のステップで有効にします。
すべてのノードで CPU とメモリを 95%
空のセレクターはすべてのノードに一致します。0 から 100 までの整数である必要があります。値が 0 の場合、サンドボックスのキャパシティはゼロになります。
選択した Node Pools のみに 50%
これにより、2 つの Node Pools のいずれかのノードが選択されます。[BATCH-POOL] と [INTERACTIVE-POOL] をそれぞれの Node Pool ラベルの値に置き換えてください:
managedNodes.selector の外にあるノードは、サンドボックス予算をゼロで受け取ります。適用が有効になると、予算トークンを必要とするサンドボックスはそれらのノードを使用できません。
選択内容をプレビュー:
Node Pools と独自のグループの異なる予算
この設定では、次の予算が提供されます。- デフォルトで CPU とメモリの 95%。
[CPU-POOL]Node Pool 内のノードに対して CPU とメモリの 50%。[BUDGET-GROUP-LABEL]=[TRAINING-GROUP]のラベルが付いたノードに対して CPU の 25% とメモリの 40%。
[CPU-POOL] を Node Pool のラベル値に置き換えてください。[BUDGET-GROUP-LABEL] を独自のラベルキーに、[TRAINING-GROUP] をその値に置き換えてください。
- A matching オーバーライド replaces the default percentages.
- If 複数のオーバーライド match, the 最小値 percentage in each dimension wins.
- Rule 順序 doesn’t establish priority.
- Overlap is reported as
selector_conflict. Prefer disjoint groups when overlap is unintended. - エントリ in
matchLabelsand separate 式 must all match. - Values within one
Inexpression are alternatives.
特定のノードに 50%
選択したいノードの観測されたkubernetes.io/hostname ラベル値に [HOSTNAME-A] と [HOSTNAME-B] を置き換えてください:
設定を適用する
設定を JavaScript Object Notation (JSON) のstring として次のフィールドに保存します。
BUDGET_FILE を変更したうえで、このブロックを再利用してください:
spec.overrides はオブジェクト全体として置き換えられるため、その兄弟フィールドを保持する必要があります。
CoreWeave Intelligent CLI v1.44.0 では、この環境変数のみのパッチを使用してください。このリリースの古いポリシースキーマでは、新しいサーバーからリネームされた HTTPS ホスト名フィールドを完全にエクスポートできません。そのため、ランナーのドキュメント全体を再適用すると、ポリシーが不完全なデータで置き換えられる可能性があります。上記のパッチには、ポリシーは含まれず、更新もされません。
ランナーのエクスポートは非公開にし、作業後は一時ファイルを削除してください。
検証の準備
準備により、ノードのステータスにこれらの拡張リソースがパブリッシュされます:- 予算トークンのない既存のバインド済みサンドボックスは、終了するまでパブリッシュされた予算から差し引かれます。
- その他のワークロードは物理リソースを消費するため、利用可能なサンドボックスキャパシティは設定された予算より低くなる場合があります。
- サンドボックスの料金には、ヘルパーコンテナー、init-containerのピーク、RuntimeClassのオーバーヘッドが含まれます。
- CPUとメモリの割合はGPUキャパシティを分割しません。
sandbox_runner_node_budget_policy メトリクスは mode と policy_hash ラベルを公開します。クラスター内のすべてのランナーが mode="prepare" および同じ policy_hash 値を report していることを確認してください。これらのメトリクスにアクセスできない場合は、適用を有効にする前に CoreWeave に準備完了を検証するよう依頼してください。
適用を有効にする
準備が正常な状態になったら、モードのみを変更します。cwic sandbox runner describe "$RUNNER_ID" を使用してランナーのロールアウトを確認し、クラスターの受け入れの遷移が完了したことを CoreWeave に確認してもらいます。この遷移によって、クラスターが予算の適用を開始するタイミングが調整されます。遷移には、古いシャードの廃止や、適用前から保留中だったワークロードのバインドまたは終了も含まれます。
適用を検証するには、次の手順を実行します。
- 各ランナー上に小規模なサンドボックスを作成します。
- その Pod が両方の予算リソースをリクエストしていることを確認します。
- 制御された飽和テストを実施する場合は、CPU またはメモリのいずれかの予算を使い切った時点で新しい割り当てが停止することを検証します。
- テスト用のサンドボックスを削除します。
Terraform 管理のランナーを設定する
Terraform がランナーを管理している場合は、次のspec.overrides.env 設定を既存の coreweave_sandbox_managed_runner リソースにマージしてください:
prepare から enforce に更新し、対応する Terraform の変更を適用します。
Terraform がランナーを管理している場合、変更を Terraform に保持して、後続の apply が意図した設定を維持するようにします。
予算を削減する、またはノードのメンバーシップを変更する
ノードが自動的に cordon またはドレインされることはありません。 キャパシティが減少するような形でパーセンテージを下げたり、セレクターやラベルを変更したりする場合は、事前に次の手順を実行してください。- 影響を受けるノードを cordon します。
- 更新した設定を、そのクラスター内のすべてのランナーに適用します。
- 予算が収束するまで待ちます。
- この変更のために cordon したノードのみを uncordon します。