EKSクラスタプロビジョニングのベストプラクティス

GitLabはEKSクラスタをAWSにプロビジョニングするために使用できますが、必然的に基本的なEKS設定に焦点を当てます。AWSツールを使用することで、高度なクラスター設定、自動化、および保守を行うことができます。

このドキュメントはGitLab自体をデプロイするためのクラスターではなく、そのために構築されたクラスターを対象としています:

  • GitLab RunnerのためのEKSクラスター
  • GitLabレビューアプリ用デプロイクラスター
  • 本番アプリケーション用のアプリケーションデプロイクラスター

GitLab を EKS 上にデプロイする情報はProvisioning GitLab Cloud Native Hybrid on AWS EKS にあります。

使用方法eksctl

eksctl を使用すると、EKS クラスタを構築する際に以下のことが可能になります:

  • さまざまなクラスター設定オプションがあります:
    • オペレーティングシステムの選択:Amazon Linux 2、Windows、Bottlerocket
    • ハードウェアアーキテクチャの選択: x86、ARM、GPU
    • Kubernetesバージョンの選択(プロジェクトのアプリケーション用のGitLab管理クラスターには、特定のKubernetesバージョン要件があります。)
  • など、付加価値の高いものをクラスターにデプロイすることができます:
    • クラスターのエンドポイントを非公開にし、パフォーマンステストを実行するためのバスティオンホスト。
    • モニタリング用のPrometheusとGrafana。
  • K8sノードの自動スケーリングのためのEKS Autoscaler。
  • 2つまたは3つの可用性ゾーン(AZ) 高可用性(HA) とコストコントロールのバランスをとるための分散。
  • スポット計算を指定する機能。

Amazon EKSアーキテクチャのクイックスタートガイドの詳細はこちら:

クラスターをインテグレーションするためのGitLab設定の注入

アプリデプロイのクラスターを設定し、そこから情報を抽出してGitLabにインテグレーションする方法を詳しくお読みください。

Helmチャートを使ったGitLab Runnerのプロビジョニング

GitLab Runner Helm Chartを使ってランナーをクラスターにデプロイする方法をお読みください。

ランナーキャッシュ

EKSクイックスタートではEFSプロビジョニングを提供しているため、ランナーキャッシュにEFSを使用するのが最良の方法です。最終的には、ランナーキャッシュにS3バケットを使用する情報をここで公開する予定です。