Skip to content
Latchkey

Actions Runner Controller(ARC)とは?Kubernetes 上の runner

Actions Runner Controller(ARC)とは、self-hosted な GitHub Actions runner を自前のクラスタ内で pod として実行・autoscale する、オープンソースの Kubernetes operator です。

ARC は、Kubernetes 上で大規模に runner を self-host する人気の方法です。runner のキャパシティを需要に応じてスケールする pod に変えます - 強力ですが、CI フリートを、いまやあなたが運用しなければならない Kubernetes ワークロードにします。

ARC が行うこと

ARC はキューに溜まった job を GitHub で監視し、それらを処理する ephemeral な runner pod を作成し、負荷時にスケールアップし、アイドル時にゼロまでスケールダウンします。各 runner は、クラスタのノードにスケジュールされる pod です。

チームが採用する理由

  • hosted の分単位の価格なしで、ephemeral かつ autoscale される runner。
  • 自分のネットワークとセキュリティ境界の内側に存在する runner。
  • 既存の Kubernetes プラットフォーム投資の再利用。

運用の現実

ARC は Kubernetes の運用をすべて引き継ぎます。クラスタのアップグレード、ノードの autoscaling、controller の更新、イメージ保守、スケーリングのチューニング、pod スケジューリングのデバッグ。runner は hosted の価格からは「無料」ですが、プラットフォームエンジニアリングの時間の面では高価です。

ARC vs マネージド runner

ARC とマネージドプラットフォームは同じ目標 - 安価で ephemeral、autoscale される runner - を狙いますが、ARC は Kubernetes 上のセルフサービスであり、マネージドプラットフォームはあなたに代わって運用されます。選択は、フリートを運用したいかどうかです。

運用ゼロという代替案

Latchkey は、運用するクラスタなしで ephemeral、autoscale、warm pool 化された runner を届けます - Kubernetes の運用なしの ARC の結果、通常 GitHub-hosted より約 70% 安く。

重要なポイント

  • ARC は、self-hosted な GitHub runner を autoscale する Kubernetes operator です。
  • 自前のクラスタ内で ephemeral かつ autoscale される runner を提供します。
  • Kubernetes の運用オーバーヘッドをすべて負います。
  • マネージド runner は運用ゼロで同じ結果に到達します。

関連ガイド