Skip to content
Latchkey

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 スタックの運用は自分で行います。

関連ガイド