正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Runnerのオートスケール

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLab Runnerのオートスケールを使用すると、パブリッククラウドインスタンスでRunnerを自動的にスケールできます。オートスケーラーを使用するようにRunnerを設定すると、クラウドインフラストラクチャ上で複数のジョブを同時に実行することで、CI/CDジョブのワークロード増加に対処できます。

パブリッククラウドインスタンスのオートスケールオプションに加えて、次のコンテナオーケストレーションソリューションを使用して、Runnerフリートをホストおよびスケールできます。

  • Red Hat OpenShift Kubernetesクラスター
  • Kubernetesクラスター: AWS EKS、Azure、オンプレミス
  • AWS FargateのAmazon Elastic Container Servicesクラスター

Runnerマネージャーを設定する

GitLab Runnerのオートスケール(Docker Machine AutoscalingソリューションとGitLab Runner Autoscalerの両方)を使用するようにRunnerマネージャーを設定する必要があります。

Runnerマネージャーは、オートスケール用に複数のRunnerを作成するRunnerの一種です。GitLabに対しジョブを継続的にポーリングし、パブリッククラウドインフラストラクチャと連携して、ジョブを実行するための新しいインスタンスを作成します。Runnerマネージャーは、GitLab Runnerがインストールされているホストマシン上で実行する必要があります。DockerとGitLab Runnerがサポートするディストリビューション(Ubuntu、Debian、CentOS、RHELなど)を選択します。

  1. Runnerマネージャーをホストするインスタンスを作成します。これはスポットインスタンス(AWS)またはスポット仮想マシン(GCP、Azure)であってはなりません
  2. インスタンスにGitLab Runnerをインストールします。
  3. クラウドプロバイダーの認証情報をRunnerマネージャーのホストマシンに追加します。

コンテナ内でRunnerマネージャーをホストできます。GitLab.comでホストされるRunnerの場合、Runnerマネージャーは仮想マシンインスタンスでホストされます。

GitLab Runner Docker Machine Autoscalingの認証情報の設定例

このスニペットは、ファイルconfig.tomlrunners.machineセクションの中にあります。

  [runners.machine]
    IdleCount = 1
    IdleTime = 1800
    MaxBuilds = 10
    MachineDriver = "amazonec2"
    MachineName = "gitlab-docker-machine-%s"
    MachineOptions = [
      "amazonec2-access-key=XXXX",
      "amazonec2-secret-key=XXXX",
      "amazonec2-region=eu-central-1",
      "amazonec2-vpc-id=vpc-xxxxx",
      "amazonec2-subnet-id=subnet-xxxxx",
      "amazonec2-zone=x",
      "amazonec2-use-private-address=true",
      "amazonec2-security-group=xxxxx",
    ]

認証情報ファイルはオプションです。AWS環境のRunnerマネージャーにはAWSアイデンティティおよびアクセス管理(IAM)インスタンスプロファイルを使用できます。AWSでRunnerマネージャーをホストしない場合は、認証情報ファイルを使用できます。

耐障害性のあるデザインを実装する

耐障害性のあるデザインを作成し、Runnerマネージャーホストの障害を防ぐには、同じRunnerタグを使用する少なくとも2つのRunnerマネージャーから始めます。

たとえばGitLab.comでは、LinuxでホストされるRunnerに対して複数のRunnerマネージャーが設定されています。各Runnerマネージャーにはタグsaas-linux-small-amd64があります。

組織のCI/CDワークロードの効率性とパフォーマンスのバランスを取るためにオートスケールパラメータを調整するときには、可観測性とRunnerフリートのメトリクスを使用します。

Runnerのオートスケールexecutorを設定する

Runnerマネージャーを設定したら、オートスケールに固有のexecutorを設定します:

Instance executorとDocker Autoscaling executorを使用してください。これらのexecutorは、Docker Machineオートスケーラーに代わるテクノロジーを構成しています。