Helmを使用したGitLabのインストール
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
クラウドネイティブのGitLab Helmチャートを使用して、KubernetesにGitLabをインストールします。
すでに前提要件がインストールされ、設定されていることを前提に、helmコマンドでGitLabをデプロイできます。
デフォルトのHelmチャート設定は、not intended for production(本番環境を対象としたものではありません)。デフォルトのチャートで作成されるのは概念実証(PoC)の実装であり、そこではすべてのGitLabサービスがクラスターにデプロイされます。本番環境にデプロイする場合は、クラウドネイティブハイブリッドリファレンスアーキテクチャに従う必要があります。
本番環境へのデプロイでは、Kubernetesに関する確かな実務知識が必要です。このデプロイ方法では、管理、可観測性、概念が従来のデプロイとは異なります。
本番環境へのデプロイ:
- PostgreSQL、Redis、Gitaly(Gitリポジトリのストレージデータプレーン)などのステートフルコンポーネントは、PaaSまたはコンピューティングインスタンス上のクラスターの外部で実行する必要があります。この設定は、GitLab本番環境にあるさまざまなワークロードをスケールしたり、信頼性の高い仕方でサービスを提供したりするために必要です。
- PostgreSQL、Redis、Gitリポジトリストレージ以外のすべてのストレージのオブジェクトストレージには、Cloud PaaSを使用する必要があります。
お使いのGitLabインスタンスでKubernetesが不要な場合は、より簡単な代替手段として、リファレンスアーキテクチャを参照してください。
コンテナイメージ
GitLab Helmチャートは、クラウドネイティブGitLab(CNG)コンテナイメージを使用してGitLabをデプロイします。GitLab自体のCNGイメージに加えて、デフォルトの設定では、サードパーティ(Bitnamiなど)が公開しているイメージを使用してPostgreSQL、Redis、MinIOをデプロイし、非本番環境でのデプロイを簡素化します。
上記のとおり、本番環境インスタンスでは、これらの(ステートフルな)サードパーティサービスをGitLabチャートとともにデプロイしないでください。
外部サービスを使用するようにチャートを設定する方法については、次のドキュメントを参照してください。
2024年12月から、Bitnamiはビルドポリシーを変更し、無料カタログ内の各アプリケーションについて最新の安定したメジャーバージョンのみを更新するようになりました。GitLabチャートは引き続き、一般公開されているイメージをデフォルトで使用します。
2025年7月、Bitnamiは、安全なバージョン管理されたチャートとイメージにアクセスするために、有料のサブスクリプションであるBitnami Secure Imagesが必要になると発表しました。
その結果、GitLabによって設定されたこれらのBitnamiチャートのバージョンは古くなります。非本番環境で使用するためにこれらのBitnamiチャートをデプロイするチームは、セキュリティ要件に見合った適切な最新のパッチが適用されたイメージを使用するように注意する必要があります。
外部ステートフルデータを使用するようにHelmチャートを設定する
PostgreSQL、Redis、Gitリポジトリストレージ以外のすべてのストレージ、およびGitリポジトリストレージ(Gitaly)などの項目のために、外部ステートフルストレージを参照するよう、GitLab Helmチャートを設定することができます。
次のInfrastructure as Code(IaC)オプションでは、このアプローチを使用しています。
本番環境グレードの実装では、適切なチャートパラメータを使用することにより、選択したリファレンスアーキテクチャに合わせて事前構築された外部ステートストアを参照する必要があります。
リファレンスアーキテクチャを使用する
KubernetesにGitLabインスタンスをデプロイするためのリファレンスアーキテクチャが特にクラウドネイティブハイブリッドと呼ばれるのは、本番環境グレードの実装の場合、すべてのGitLabサービスをクラスター内で実行できるわけではないためです。ステートフルGitLabコンポーネントは、すべて、Kubernetesクラスターの外部にデプロイする必要があります。
使用可能なクラウドネイティブハイブリッドリファレンスアーキテクチャのサイズのリストについては、リファレンスアーキテクチャのページをご覧ください。たとえば、こちらのクラウドネイティブハイブリッドリファレンスアーキテクチャに、ユーザー数3,000のケースが紹介されています。
Infrastructure as Code(IaC)とビルダーリソースを使用する
GitLabでは、Helmチャートと補足的なクラウドインフラストラクチャの組み合わせを設定できるInfrastructure as Codeを開発しています:
- GitLab Environment Toolkit IaC。
- 実装パターン: AWS EKSでクラウドネイティブハイブリッドGitLabをプロビジョニングする: このリソースは、GitLab Performance Toolkitでテスト済みの部品表を提供し、予算編成にAWS料金計算ツールを使用しています。