GitLabのインストール要件
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLab Self-Managedには、デプロイ規模とワークロードに応じて異なる特定のハードウェア、コンポーネント、およびインフラストラクチャの要件があります。大規模な、または分散型のデプロイの場合は、サイジングガイドを使用して、環境に合った適切な仕様を決定してください。
ハードウェア
GitLabを単一ノード、または複数のノードにわたって分散型でデプロイできます。単一ノードインストールに必要な最小ハードウェア要件を以下に示します。分散型デプロイの場合、要件はコンポーネントの種類ごとに割り当てられ、負荷に応じてスケールします。期待される負荷とワークロード構成に基づいて適切な仕様を決定するには、サイジングガイドを使用してください。
CPU
単一ノードインストールの場合、8 vCPUがベースラインです。ARMベースのプロセッサがサポートされています。分散型デプロイの場合、CPUはコンポーネントの種類ごとに割り当てられ、負荷に応じてスケールします。
パフォーマンスが不安定なため、バースト可能なインスタンスタイプは推奨されません。
メモリ
単一ノードインストールの場合、16 GBがベースラインです。分散型デプロイの場合、メモリはコンポーネントの種類ごとに割り当てられ、負荷に応じてスケールします。
メモリに制約のある環境での単一ノードインストールの場合、GitLabは最低8 GBのメモリで実行できます。詳細については、メモリ制約のある環境でGitLabを実行するを参照してください。
可能な場合はスワップを無効にしてください。スワップは、負荷がかかるとパフォーマンスが著しく低下する可能性があります。スワップを無効にできない場合は、GitLabが使用しないように十分なメモリをプロビジョニングしてください。
ストレージ
ストレージ要件はコンポーネント固有です。単一ノードインストールの場合、すべての要件を1台のマシンに集約します。分散型デプロイの場合は、それぞれを関連するノードタイプに適用します:
| コンポーネント | 最小ストレージ | 備考 |
|---|---|---|
| アプリケーションノード(Rails, Sidekiq, Puma) | 40 GB | パッケージのインストール(約2.5 GB)のほか、OS、ログ、一時ファイル。 |
| リポジトリストレージ(Gitaly) | すべてのリポジトリを合計した容量以上 | Gitalyディスク要件を参照してください。 |
| データベース(PostgreSQL) | 5-12 GB | PostgreSQLストレージ要件を参照してください。 |
NFS、Amazon EFS、Azure Filesなどのネットワークファイルシステムは、パフォーマンスに大きな影響を与える可能性があるため、避けてください。詳細については、クラウドベースのファイルシステムの回避を参照してください。
最高のパフォーマンスを得るには、SSDベースのストレージを使用してください。これは、I/O負荷の高いGitalyにとって特に重要です。パフォーマンスが不安定なため、バースト可能なディスクタイプは推奨されません。
インフラストラクチャ
GitLabは、さまざまなインフラストラクチャタイプで動作します。次のセクションでは、サポートされているプラットフォームと高可用性の要件について説明します。
サポートされているインフラストラクチャ
GitLabは、基盤となる環境がこのガイドで説明されているハードウェアおよびコンポーネントの要件を満たしている場合、クラウドプロバイダーおよびセルフマネージドインフラストラクチャで動作します。一般的に使用されるクラウドプロバイダーには、AWS、GCP、Azureなどがあります。GitLab SupportはGitLab自体を対象としています。基盤となるインフラストラクチャまたはプラットフォームに関するイシューは、そのスコープ外です。
Cloud Nativeデプロイの場合、GitLabはGitLab Helmチャートの前提条件を満たすすべてのKubernetesディストリビューションで実行されます。Kubernetesプラットフォーム固有の動作(ネットワーキング、ストレージクラス、認証など)は、GitLabサポートのスコープ外です。
高可用性
HAのデプロイには、特定のネットワーク要件があります:
- 同期レプリケーションをサポートするには、ノード間のレイテンシーが5ミリ秒未満である必要があります。
- 耐障害性を高めるには、アベイラビリティーゾーンをまたいでデプロイすることが推奨されます。クォーラム要件を満たすには、奇数個のゾーンを使用してください。
- 複数のセルフマネージドデータセンターにまたがってデプロイするには、同期可能なレイテンシー、冗長なネットワークリンク、および同じ地理的リージョン内に奇数個のセンターが必要です。
単一のGitLabインスタンスは、複数の地理的リージョンにまたがって展開してはなりません。マルチリージョンデプロイの場合は、地理的に分散されたインストール向けに設計されたGeoを使用してください。複数のデータセンターでのデプロイにおけるインフラストラクチャ関連のイシューは、GitLabサポートのスコープ外となる可能性があります。
コンポーネント要件
PostgreSQL
PostgreSQLは唯一サポートされているデータベースであり、以下で利用可能です:
- Linuxパッケージにバンドルされたインスタンスとして。
- 外部サービスとして。
外部インスタンスについては、以下を参照してください:
- 外部で管理されるインスタンスの必須設定。
- スキーマガイダンスについては、データベーススキーマを参照してください。
- ロケールに関する考慮事項については、ロケールの互換性を確認するタイミングを参照してください。
サポートされているバージョン
次のバージョンのGitLabでは、対応するPostgreSQLバージョンを使用してください。
| GitLabバージョン | Helmチャートバージョン | PostgreSQLの最小バージョン | PostgreSQLの最大バージョン |
|---|---|---|---|
| 19.x | 10.x | 17.x | 17.x |
| 18.x | 9.x | 16.5 | 17.x(GitLab 17.10以降でテスト済み) |
| 17.x | 8.x | 14.14 | 16.x(GitLab 16.10以降に対してテスト済み) |
| 16.x | 7.x | 13.6 | 15.x(GitLab 16.1以降に対してテスト済み) |
PostgreSQLのマイナーリリースには、バグとセキュリティの修正のみが含まれます。PostgreSQLで既知のイシューを回避するため、常に最新のマイナーバージョンを使用してください。詳細については、イシュー364763を参照してください。
指定されているバージョンよりも新しいPostgreSQLのメジャーバージョンを使用するには、新しいバージョンがLinuxパッケージにバンドルされているかどうかを確認してください。
ストレージ要件
ユーザー数に応じて、PostgreSQLサーバーには以下が必要です。
- ほとんどのGitLabインスタンスの場合、少なくとも5~10 GBのストレージ。
- Ultimateの場合、少なくとも12 GBのストレージ(1 GBの脆弱性データをインポートする必要があります)。
拡張機能
拡張機能をインストールするには、PostgreSQLにはスーパーユーザー権限が必要です。手順については、Manage PostgreSQL extensionsを参照してください。
| 拡張機能 | 最小GitLabバージョン | タイプ | データベース |
|---|---|---|---|
amcheck | 18.4 | 必須 | メイン |
btree_gist | 13.1 | 必須 | メイン |
pg_trgm | 8.6 | 必須 | メイン |
plpgsql | 11.7 | 必須 | main、Geoセカンダリ追跡データベース(最小バージョン9.0) |
pg_stat_statements | – | 推奨 | すべて |
Gitaly Cluster (Praefect)
Gitalyクラスターには、メインのGitLabデータベースとは別の専用PostgreSQLインスタンスが必要です。完全なHAを実現するには、サードパーティのPostgreSQLソリューションを使用してください。Linuxパッケージを使用する非HAのPostgreSQLインスタンスは、Gitalyのデータベースレベルの冗長性を必要としない環境には十分です。
RedisまたはValkey
RedisまたはValkeyは、すべてのユーザーセッションとバックグラウンドタスクを保存します。
サポートされているRedisまたはValkeyのバージョンは次のとおりです:
| データストア | 推奨バージョン | 最小バージョン |
|---|---|---|
| Redis | 7.2 | 7.01 |
| Valkey | 7.2 | 7.2 |
1 Redis 7.0はアップストリームでEOL(End-of-Life)に達しましたが、ベンダーによっては積極的にメンテナンスされている場合があります。たとえば、Amazon ElastiCache for Redis 7.1は独自のバージョン番号を使用していますが、Redis 7.0をベースに構築されています。
Redisのサポート終了日に関する詳細については、Redisドキュメントを参照してください。
- スタンドアロンインスタンスを使用します(高可用性の有無にかかわらず)。Redisクラスターはサポートされていません。
- Serverless RedisおよびValkeyのバリアントはサポートされていません。
- 必要に応じて削除ポリシーを設定します。
Puma
推奨されるPuma設定は、インストールによって異なります。デフォルトでは、Linuxパッケージは推奨設定を使用します。
Pumaの設定を調整するには:
- Linuxパッケージについては、Puma設定を参照してください。
- GitLab Helmチャートについては、
webserviceチャートを参照してください。
ワーカーおよびスレッドのサイジングガイダンスについては、Pumaワーカーおよびスレッドのサイジングを参照してください。
Sidekiq
Sidekiqは、複数のスレッドを使用してバックグラウンドジョブを処理します。各プロセスには最低200 MBのメモリが必要で、負荷がかかると大幅に増加する可能性があります。10,000人を超えるユーザーがいる環境では、Sidekiqプロセスごとに少なくとも1 GBを割り当ててください。
オブジェクトストレージ
オブジェクトストレージは分散型デプロイに必須であり、すべてのインストールで推奨されます。LFSオブジェクト、CI/CDアーティファクト、アップロード、コンテナレジストリデータ、バックアップなど、バイナリデータを保存します。
任意のS3互換オブジェクトストレージサービスを使用してください。設定およびテスト済みのプロバイダーのリストについては、オブジェクトストレージを参照してください。
オプションコンポーネント
これらのコンポーネントは、コアGitLabのインストールには必須ではありませんが、使用する場合には個別のインフラストラクチャまたはリソース要件があります。
コンテナレジストリ
GitLabコンテナレジストリは、GitLabプロジェクト用のDockerおよびOCIイメージを保存し、以下を必要とします:
- ドメイン。
- TLS証明書。
- ファイルシステムまたはS3互換オブジェクトストレージのいずれか。
高トラフィック環境の場合、レジストリはメインのGitLabインスタンスとは別の専用インフラストラクチャで実行できます。
GitLab Pages
GitLab Pagesは、プロジェクトとグループの静的ウェブサイトをホストします。これは別のデーモンとして実行され、DNSワイルドカードを必要とします。カスタムドメインのサポートには、セカンダリIPアドレスとTLS証明書が必要です。
ElasticsearchとOpenSearch
高度な検索は、GitLabコンテンツ全体でより高速で高性能な検索を可能にします。これには、個別のElasticsearchまたはOpenSearchクラスターが必要です。クラスターのサイズは、インデックス付きデータの量によって異なります。
Prometheus
PrometheusモニタリングはLinuxパッケージにバンドルされており、デフォルトで有効になっています。設定または無効化に関する情報については、Prometheusを使用したGitLabのモニタリングを参照してください。
Zoekt
Zoektは、リポジトリ全体で完全一致コードの検索を提供し、個別のサービスとして実行されます。リソース要件については、Zoekt管理を参照してください。
ClickHouse
ClickHouseは、オープンソースの列指向データベースであり、プロダクト分析機能に使用されます。これは別のデータベースサービスとして実行されます。リソース要件については、ClickHouse設定を参照してください。
AIゲートウェイ
AIゲートウェイは、GitLab DuoのAI機能のバックエンドサービスを提供します。これは、DockerまたはKubernetesにデプロイ可能なスタンドアロンサービスとして実行されます。リソース要件については、インストールガイドを参照してください。
シークレットマネージャー
GitLab Secrets Managerは、OpenBaoを搭載したネイティブのシークレット管理を提供します。これは、個別のKubernetesサービスとして実行され、専用のPostgreSQLデータベースとロードバランサーを必要とします。
サポートされているWebブラウザ
GitLabは、次のWebブラウザをサポートしています。
GitLabは、Baseline Widely availableブラウザセットをターゲットにしています。これらは、すべてのコアブラウザで安定したウェブプラットフォーム機能をサポートするブラウザのバージョンです。機能は、少なくとも30か月後にWidely availableステータスに達します。Widely availableブラウザセットには、これらのブラウザのデスクトップバージョンとモバイルバージョンの両方が含まれます。
これらのブラウザでJavaScriptを無効にしてGitLabを実行することはサポートされていません。