GitHub Actions Runner Controller バージョン0.14.0のリリース
GitHub Actions Runner Controller 0.14.0は、マルチラベル対応や公式ライブラリ移行により、大規模AIワークフローのインフラ管理柔軟性と運用安定性を大幅に向上させた。
キーポイント
マルチラベル対応の実装
単一スケーリングセットに複数のOS・ハードウェア・コンプライアンス属性を割り当てられ、ワークフローの柔軟なターゲット指定が可能になった。
スケーリングセット公式ライブラリへの移行
内部クライアントを公開Goパッケージへ統一し、プラットフォームチームが同じAPI仕様でカスタム自動スケーリングソリューションを構築できる基盤を提供。
内部リソースのメタデータカスタマイズ
Helmチャート経由でロールやリスナーPodなど内部リソースへのラベル・アノテーション付与をグローバルまたは個別に制御可能にし、統合運用を容易にした。
環境不一致対策とLinuxノード既定値
古い設定のランナーが終了コード7で退出した場合に自動スケーリングを停止する機能と、混合OSクラスターでのリスナーPodのLinuxノード固定化を追加。
リスナーPodのデフォルトノードセレクタ設定
リスナーPodに kubernetes.io/os: linux のノードセレクタがデフォルトで適用され、マルチOS環境でのWindowsノードへの誤スケジュール防止とプラットフォーム不整合エラーを回避する。設定は listenerTemplate で上書きまたは削除可能。
影響分析・編集コメントを表示
影響分析
本リリースは、大規模なAIモデル学習やCI/CDパイプラインを運用するインフラチームにとって、スケーラビリティと運用安定性の両面で重要な進歩である。マルチラベル対応と公式ライブラリの公開により、複雑なGPUクラスターやコンプライアンス要件を持つ環境でのカスタムオーケストレーションが容易になる。また、古い設定による自動スケーリング停止機能は、環境不一致によるジョブ失敗リスクを未然に防ぎ、MLOps運用の信頼性を高める。
編集コメント
大規模AIワークフローの運用コストを削減するため、インフラチームはマルチラベル対応と公式ライブラリ移行を優先的に検証すべきである。特にGPUクラスターやコンプライアンス要件が厳しい環境では、本機能の活用が運用効率を劇的に向上させる。
GitHub Actions Runner Controller (ARC) 0.14.0 が一般提供を開始しました。このリリースでは、ランナースケールセットのマルチラベルサポートの導入、actions/scaleset ライブラリクライアントへの切り替え、リソースカスタマイズオプションの追加、リスナーポッドのスケジューリングの改善が行われています。使い始めるには、ARC ドキュメントを参照してください。
ランナースケールセットのマルチラベルサポート
単一のランナースケールセットに複数のラベルを割り当てられるようになり、ワークフローが複数の属性を組み合わせてランナーを指定できるようになりました。以前は、ARC はスケールセットごとに1つのラベルのみをサポートしていたため、オペレーティングシステム、ハードウェア階層、ネットワーク構成、コンプライアンスゾーンなどの組み合わせごとに別々のスケールセットを作成する必要がありました。マルチラベルサポートにより、これらの属性をすべて単一のスケールセットで定義し、runs-on 宣言でまとめて使用できます。
スケールセットライブラリクライアント
ARC は、GitHub Actions サービス API との通信に、actions/scaleset ライブラリを唯一のクライアントとして使用するようになりました。このリリースでは、従来の内部クライアントを廃止し、このスタンドアロンで公開されている Go パッケージを採用しています。これにより、プラットフォームチームやインフラストラクチャプロバイダーは、ARC を駆動するのと同じクライアントを使用して、カスタムオートスケーリングソリューションを構築できるようになります。
内部リソースへのカスタムラベルとアノテーション
ARC が内部で管理するリソース(ロール、ロールバインディング、サービスアカウント、リスナーポッドなど)に、カスタムの Kubernetes ラベルとアノテーションを適用できるようになりました。gha-runner-scale-set と gha-runner-scale-set-controller の両方の Helm チャートは、この目的のためのリソース設定インターフェースを公開しています。resource.all.metadata を使用してすべてのリソースにグローバルにメタデータを設定したり、個々のリソースを対象にしてきめ細かい制御を行ったりできます。
実験的 Helm チャート
このリリースでは、gha-runner-scale-set と gha-runner-scale-set-controller の両方の Helm チャートを実験的に書き直したものを導入しています。これらのチャートは、より整理されたテンプレート構造、内部リソースへのアノテーションとラベル付けのための統一されたインターフェース、Docker ベースのランナーセットアップのための改善された設定を提供します。実験的なチャートは、既存のチャートと並行して、早期のフィードバックを得るために利用できます。
古くなったランナーセットのオートスケーリング停止
ランナー設定が古くなった場合、ARC はそのランナーセットのオートスケーリングを完全に停止できるようになりました。ランナーが終了コード 7 で終了すると、コントローラーはそのランナーセットのオートスケーリングをオフに切り替え、新しい設定が展開されている間に古いランナーがプロビジョニングされるのを防ぎます。これにより、環境に一貫性がない状態でジョブが実行されるリスクが軽減されます。
この機能は、次のランナーリリースで提供予定のランナー側の変更(終了コード 7)に依存しています。ランナーバージョンサポートポリシーにより、この機能はランナー側の変更が提供されてから2回のリリース後まで完全には有効になりません。
リスナーポッドのデフォルトは Linux ノードに
リスナーポッドには、デフォルトで kubernetes.io/os: linux という nodeSelector が設定されるようになりました。混合 OS クラスターにおいて、これによりリスナーが誤って Windows ノードにスケジュールされ、プラットフォーム非互換性により失敗することを防ぎます。listenerTemplate 設定を通じて、このデフォルトを上書きしたり削除したりすることも可能です。
この投稿「Actions Runner Controller release 0.14.0」は、The GitHub Blog に最初に掲載されました。
原文を表示
GitHub Actions Runner Controller (ARC) 0.14.0 is now generally available. This release introduces multilabel support for runner scale sets, switches to the actions/scaleset library client, adds resource customization options, and improves listener pod scheduling. To get started, see the ARC documentation.
Multilabel support for runner scale sets
You can now assign multiple labels to a single runner scale set, enabling workflows to target runners based on combined attributes. Previously, ARC only supported one label per scale set, which meant creating separate scale sets for every combination of operating system, hardware tier, network configuration, or compliance zone. With multilabel support, you can define all of these attributes on a single scale set and use them together in your runs-on declarations.
Scaleset library client
ARC now uses the actions/scaleset library as its sole client for communicating with the GitHub Actions service APIs. This release removes the previous internal client in favor of this standalone, publicly available Go package. This gives platform teams and infrastructure providers the ability to build custom autoscaling solutions using the same client that powers ARC.
Custom labels and annotations on internal resources
You can now apply custom Kubernetes labels and annotations to the resources that ARC manages internally, including roles, role bindings, service accounts, and listener pods. Both the gha-runner-scale-set and gha-runner-scale-set-controller Helm charts expose a resource configuration interface for this purpose. You can set metadata globally across all resources using resource.all.metadata or target individual resources for fine-grained control.
Experimental Helm charts
This release introduces experimental rewrites of both the gha-runner-scale-set and gha-runner-scale-set-controller Helm charts. These charts offer a cleaner template structure, a unified interface for annotating and labeling internal resources, and improved configuration for Docker-based runner setups. The experimental charts are available alongside the existing charts for early feedback.
Autoscaling stops for outdated runner sets
ARC can now fully stop autoscaling for a runner set when the runner configuration is outdated. When a runner exits with exit code 7, the controller switches off autoscaling for that runner set, preventing stale runners from provisioning while a new configuration rolls out. This reduces the risk of jobs running in inconsistent environments.
This capability depends on a runner change (exit code 7) that will ship in the next runner release. Due to the runner version support policy, this feature won’t become fully effective until two releases after the runner change ships.
Listener pod defaults to Linux nodes
The listener pod now includes a default nodeSelector of kubernetes.io/os: linux. In mixed-OS clusters, this prevents the listener from accidentally scheduling on a Windows node, where it would fail due to platform incompatibility. You can still override or remove this default through the listenerTemplate configuration.
The post Actions Runner Controller release 0.14.0 appeared first on The GitHub Blog.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み