GitLab Runnerインスタンスグループオートスケーラー
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab Runnerインスタンスグループオートスケーラーは、Docker Machineをベースとしたオートスケールテクノロジーの後継機能です。GitLab Runnerインスタンスグループのオートスケールソリューションのコンポーネントは次のとおりです:
- taskscaler: 自動スケールロジック、ブックキーピングを管理し、クラウドプロバイダーのインスタンスの自動スケールグループを使用するRunnerインスタンスのフリートを作成します。
- Fleeting: クラウドプロバイダー仮想マシンの抽象化。
- クラウドプロバイダープラグイン: ターゲットクラウドプラットフォームへのAPIコールを処理します。プラグイン開発フレームワークを使用して実装されます。
GitLab Runnerのインスタンスグループオートスケールは、次のように動作します:
- Runnerマネージャーは、GitLabジョブを継続的にポーリングします。
- 応答として、GitLabはジョブのペイロードをRunnerマネージャーに送信します。
- Runnerマネージャーは、パブリッククラウドインフラストラクチャとやり取りして、ジョブを実行するための新しいインスタンスを作成します。
- Runnerマネージャーは、これらのジョブをオートスケールプール内の利用可能なRunnerに配布します。
Runnerマネージャーを設定する
GitLab Runnerインスタンスグループオートスケーラーを使用するには、Runnerマネージャーを設定する必要があります。
Runnerマネージャーをホストするインスタンスを作成します。これはスポットインスタンス(AWS)またはスポット仮想マシン(GCP、Azure)であってはなりません。
インスタンスにGitLab Runnerをインストールします。
クラウドプロバイダーの認証情報をRunnerマネージャーのホストマシンに追加します。
コンテナ内でRunnerマネージャーをホストできます。GitLab.comおよびGitLab DedicatedのホストされたRunnerの場合、Runnerマネージャーは仮想マシンインスタンスでホストされます。
GitLab Runnerインスタンスグループオートスケーラーの認証情報の設定例
AWS環境のRunnerマネージャーにはAWSアイデンティティおよびアクセス管理(IAM)インスタンスプロファイルを使用できます。AWSでRunnerマネージャーをホストしない場合は、認証情報ファイルを使用できます。
次に例を示します:
## credentials_file
[default]
aws_access_key_id=__REDACTED__
aws_secret_access_key=__REDACTED__認証情報ファイルはオプションです。
サポートされているパブリッククラウドインスタンス
パブリッククラウドプロバイダーのコンピューティングインスタンスでは、次のオートスケールオプションがサポートされています:
- Amazon Web Services EC2インスタンス
- Google Compute Engine
- Microsoft Azure Virtual Machines
これらのクラウドインスタンスは、GitLab Runner Docker Machineオートスケーラーでもサポートされています。
サポートされているプラットフォーム
| executor | Linux | macOS | Windows |
|---|---|---|---|
| インスタンスexecutor | 対応 | 対応 | 対応 |
| Docker Autoscaler executor | 対応 | 非対応 | 対応 |
