Actions Runner Controller (ARC) とは?
Actions Runner Controller (ARC) は Kubernetes のオペレーターで、セルフホステッドランナーをジョブの需要に応じてエフェメラルな pod としてオートスケールします。
固定数のセルフホステッドランナーのプールを維持すると、アイドル時にはコストを浪費し、混雑時にはジョブがキューに溜まります。ARC は、ワークフローの需要の増減に応じて Kubernetes 上でランナー pod を作成・破棄することでこれを解決します。
概要
ARC は GitHub 製のオープンソースの Kubernetes オペレーターです。キューに溜まったジョブを監視し、ランナー pod をスケールアップ・ダウンします。各 pod は通常、単一のエフェメラルなジョブを実行します。
仕組み
Kubernetes 上でランナー scale set を定義します。ARC はランナーを GitHub に登録し、ジョブがキューに入ると pod を起動して実行し、後で各 pod を破棄するため、すべてのジョブがクリーンな環境を得られます。
トレードオフ
- 利点: オートスケーリング、エフェメラルな分離、Kubernetes ネイティブ。
- 欠点: Kubernetes、コントローラー、スケーリングのチューニングを自分で運用します。
- コールドスタートとイメージ管理には注意が必要です。
重要な理由
ARC は弾力的なセルフホステッドキャパシティを提供しますが、大きな運用上の複雑さを伴います。Latchkey のようなマネージドプラットフォームは、Kubernetes コントロールプレーンを運用せずに、同じオートスケーリングとエフェメラルで自己修復するランナーを提供します。
関連する概念
ARC はセルフホステッドランナーを管理し、多くの場合ランナーグループに整理されます。静的なランナープールの代替です。
重要なポイント
- ARC はセルフホステッドランナーを Kubernetes の pod としてオートスケールします。
- pod はエフェメラルで、各ジョブにクリーンな環境を与えます。
- 強力ですが、Kubernetes スタックの運用は自分で行います。
関連ガイド
What Is a Self-Hosted Runner in GitHub Actions?A self-hosted runner is a machine you own and register to GitHub to run Actions jobs, giving control over har…
What Is a Runner Group in GitHub Actions?A runner group is an organization-level collection of self-hosted runners with access policies controlling wh…
What Is a GitHub Actions Runner?A runner is the machine that executes a GitHub Actions job. It can be GitHub-hosted, self-hosted, or a manage…
Actions Runner Controller (ARC) vs Managed RunnersActions Runner Controller (ARC) vs managed runners compared on cost, ops, scaling, and reliability. Self-host…