Skip to main content
マネージドランナーは、CKS クラスター内でサンドボックスを実行する、CoreWeave が管理するコンポーネントです。このページでは、ランナーのデプロイ、健全性の確認、ニーズの変化に応じた設定の調整、不要になった場合の削除まで、ライフサイクル全体を説明します。サンドボックスのアーキテクチャにおけるランナーの位置付けと、ゲートウェイがランナーへのリクエストを仲介する仕組みについては、サンドボックスのアーキテクチャを参照してください。 ランナーの有効化から最初のサンドボックスの実行までの手順ガイドについては、独自のコンピュートを使用するを参照してください。

事前準備

このページの CLI と curl の例は、いずれも CoreWeave API アクセストークンで認証します。Cloud Console の Tokens ページでトークンを生成し、Token Secret の値をコピーしてください。トークンの詳細については、API アクセストークンの管理を参照してください。 CLI: CoreWeave Intelligent CLI (cwic) をインストールし、cwic auth login を実行して、プロンプトが表示されたらトークンを貼り付けます。トークンはローカルの cwic 設定に保存され、以降のコマンドでは自動的に読み込まれます。環境変数を設定する必要はありません。
curl: このページの例からトークンを参照できるよう、シェルでトークンをエクスポートします。[API-ACCESS-TOKEN] は、ご自身の CoreWeave API アクセストークンに置き換えてください。

ランナーコマンド

cwic sandbox runner グループはランナーを管理します。以下の表は、各ライフサイクルタスクとそれを実行するコマンドの対応を示しています。以降のセクションでは、これらのコマンドについてコンテキストに沿って順を追って説明します。 すべての入力は YAML または JSON を受け入れます。

ランナーをデプロイする

組織内の各 CKS クラスターでホストできるマネージドランナーは最大 1 つです。デプロイするには、以下を指定します。
  • ランナー ID: クライアント側で割り当てる、人が読める形式の ID。組織内で一意である必要があります。
  • ゾーン: クラスターが属する地理的ゾーン。
  • クラスター ID (またはクラスター名): ランナーを実行する CKS クラスター。どちらも Cloud Console の Clusters ページで確認できます。
  • ポリシー: ランナーがそのクラスター上のサンドボックスに適用するルール。サンドボックスを実行するにはポリシーが必要です。省略した場合は、ランナーの接続時に CoreWeave がデフォルトのポリシーを適用します。ポリシーではサンドボックスのデフォルトのライフタイムを指定できます。ただし、上限である 30 日はプラットフォーム側で強制されます。サンドボックスポリシーを設定する を参照してください。
ウィザードでは、クラスター、リリースチャンネル、メンテナンス期間をインタラクティブに入力します。その後、送信前に値が入力済みの spec がエディターで開きます。
ファイルモードは YAML または JSON を受け入れます。そのため、再現可能なセットアップにはこの方法が推奨されます。また、Claude Code や Codex など、ユーザーに代わってランナーの spec を生成するエージェントとの併用にも適しています。CLI は -f - を指定すると stdin からも読み込めます。[CLUSTER-NAME] は、ランナーをデプロイする CKS クラスターの名前に置き換えてください。
runner.yaml
spec を送信します。
以下の動作に注意してください。
  • maintenance_policy.windows はオプションです。設定すると、自動更新は指定した cron ウィンドウの間にのみ適用されます。
  • runner_group_id はオプションです。同じゾーンに複数のランナーがある場合、スケジューリングのアフィニティ指定に使用します。

よくある検証エラー

ランナーのステータスを確認する

作成後、ランナーのステータスを確認して、正常にロールアウトされたかどうかを確認します。ロールアウトに失敗した場合は、ステータスをもとに問題を診断します。
表形式で概要をすばやく確認するには、エイリアス get を使用します。
どちらのコマンドでも、作成時に指定したランナー ID (prod-us-east-1) またはサーバーが割り当てた UUID を指定できます。
応答には、トラッキングすべき 2 つのステータスフィールドが含まれます。
  • installStatus: クラスターへのランナーのデプロイメントの進行状況 (PENDING、PROVISIONING、READY、または FAILED) 。
  • connectionStatus: 現在の接続状態 (CONNECTED または DISCONNECTED) 。この値はランナーのハートビートによって更新されるため、最大 30 秒の遅延が生じることがあります。
installStatus == FAILED の場合、応答には構造化された installError が含まれます。
remediationHints は、実行すべき action を示します。diagnosticDetail には、サポートチケットを作成する際に添付すると役立つ内部ログも含まれています。

ランナーを更新する

ランナーの編集コマンドは、対話型ウィザードとファイルによるパッチの両方をサポートします。内部的には、更新にフィールドマスクを使用し、変更したフィールドのみが適用されます。それ以外はすべて読み取り専用で、installStatus、connectionStatus、タイムスタンプ、解決済みのデプロイメント仕様も含まれます。 次のパスは変更可能です。
  • identity.zone
  • identity.runner_group_id
  • spec (オブジェクト全体)
  • spec.release_channel
  • spec.maintenance_policy
  • spec.overrides
  • spec.enforce_resource_limits
  • policy (ドキュメント全体)
REST API では、PATCH の本文はマネージドランナー自体であり、リクエストのラッパーはありません。フィールドマスクは updateMask クエリパラメーターとして渡されます。マスクが指定されていない場合、または updateMask=* の場合は、変更可能なリソース全体が置き換えられます。 次の 2 つのパスは、従来の v1beta2 サーフェスでのみ受け付けられ、v1 のマネージドランナーへの書き込みでは拒否されます。profile_bindings (代わりに policy を設定してください) と spec.allow_privileged_profile_annotations です。

ランナーの一般的な更新

以下の例では、ランナーに対して最も頻繁に行われる編集を紹介します。リリースチャネルの切り替え、ランナーが保持するポリシーの置き換え、クラスター内でランナー Pod を配置する場所の調整、そしてレガシーのプロファイルテンプレートに特権構成を許可する方法です。

例: リリースチャンネルを切り替える

stdin から 1 行のパッチを適用します:
または、パッチをファイルに書き込んで送信します:
patch.yaml

例: ポリシーを置き換える

ポリシーはドキュメント全体として置き換えられます。現在のポリシーを読み取り、必要な箇所を変更して送り返してください。policy 内にはフィールド単位のマスクがないため、本文の一部だけを送信すると、省略したグループは消去されます。 ポリシーの更新には etag も含めます。これは、ランナーを読み取るときに返される、不透明なリビジョントークンです。より新しい値ではなく、編集の基になった読み取りで取得した値を送信してください。古いトークンを使用すると FAILED_PRECONDITION で失敗し、何も変更されません。そのため、同時に行われた編集は知らないうちに上書きされることなく、エラーとして報告されます。
policy.json を編集し、同じ読み取りで取得した etag に固定して送信します。
policy get はポリシーを etag なしでエクスポートし、--etag を指定しない policy edit -f は送信時にランナーの現在のリビジョンを読み取ります。そのため、どちらもファイルの取得元のリビジョンには固定されません。エクスポート後に policy describe を使用するなどしてトークンを別途読み取る場合も、同じ問題が生じます。手元のドキュメントより新しいトークンはチェックを通過してしまい、その間に行われた変更を上書きします。cwic sandbox runner edit のテンプレートを使用すれば、この追加の手順は不要です。--print-template は変更可能な設定、ポリシー、およびその etag をまとめてエクスポートし、-f はファイル内の値を使用します。
すべての制約グループと具体的な例については、サンドボックスポリシーを設定するを参照してください。

例: デプロイメントのオーバーライドによるノード配置の固定

spec.overrides フィールドは、サンドボックスの Pod ではなく、ランナー自体の Pod を調整します。ランナーの Pod を適切なノードに配置するために、特定のトレランス、ノードセレクター、またはランタイムクラスが必要な場合に使用します。 よくあるケースは、SUNK クラスター内で Slurm ジョブと並行して実行できるように、ランナーの Pod を SUNK Pod Scheduler 経由で配置することです。ランナーのオーバーライドにスケジューラー名と SUNK アノテーションを設定します。使用可能なアノテーションと必要な設定については、SUNK Pod Scheduler インテグレーションを参照してください。
overrides.yaml

例: 特権プロファイルの構成を許可する

allow_privileged_profile_annotations は、ランナーにバインドされたレガシーのプロファイルテンプレートが特権的な構成を保持できるかどうかを制御します。ポリシーではなくプロファイルバインディングを引き続き使用しているランナーに適用されるため、リクエストは v1beta2 サーフェスに送信されます。既定値は false で、このフラグが設定されていないランナーでは、特権的な構成を含むテンプレートは拒否されます。 名前から受ける印象とは異なり、このフラグは次の 2 種類の内容を制御します。
  • 特権 Pod アノテーション、つまりランタイムおよびスケジューラのプレフィックス。
  • serviceAccountName、ホスト名前空間、hostPath ボリューム、特権コンテナや権限昇格コンテナなど、特権的な構造化 Pod スペックフィールド。
ランナーが拒否したテンプレートは permission_denied を返し、問題となったフィールド名を示します。たとえば、securityContext.appArmorProfile と securityContext.seccompProfile を設定するテンプレートは、次のように失敗します。
Example output
テンプレートを拒否したランナーにフラグを設定します。このフラグは 1 つのランナーにのみ適用されるため、特権構成が必要なランナーごとにこの操作を繰り返してください。
更新が成功したら、拒否されたプロファイルテンプレートを再度適用します。
このフラグを設定すると、ホストリソースへのアクセスを含め、ランナー上のサンドボックスが実行できる操作の範囲が広がります。特権構成が必要なランナーにのみ設定してください。

ランナーの更新をオンデマンドで実行する

ランナーの updateAvailable が true の場合、次のメンテナンス期間を待たずに、すぐに更新を適用できます。
コントロールプレーンは、ランナーのリリースチャンネルで最新のバージョンを特定し、target_revision を更新します。クラスター内のコントローラーがその更新をロールアウトします。

ランナーの一覧表示

組織内のすべてのランナーを確認する場合や、特定のゾーン、クラスター、接続状態に絞り込んで表示する場合は、次の一覧コマンドを使用します。
ゾーン、クラスター、接続状態でフィルタリングします。

ランナーを削除する

クラスター上のサンドボックスのキャパシティが不要になった場合、または同じクラスターに新しいランナーを再デプロイする前に、ランナーを削除します。
CLI で確認を求められます。スクリプトで使用する場合は、--yes を指定して確認を省略します。
ランナーを削除すると、クラスター内のランナーのデプロイメントが撤去されます。そのランナーで実行中のサンドボックスはすべて停止します。ポリシーはランナーの一部なので、ランナーとともに削除されます。クラスターを再デプロイする予定がある場合は、ポリシードキュメントをバージョン管理下に保存してください。
削除は元に戻せません。トラフィックを一時停止したいだけの場合は、このランナーを削除する前にサンドボックスを別のランナーに移動してください。

関連情報

最終更新日 2026年10月15日