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

GitLab Helmチャートのデプロイ

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

helm installを実行する前に、GitLabの実行方法についていくつかの決定をしておく必要があります。オプションは、Helmの--set option.name=valueコマンドラインオプションを使用して指定できます。このガイドでは、必要な値と一般的なオプションについて説明します。オプションの完全なリストについては、インストールコマンドラインオプションをお読みください。

デフォルトのHelmチャート設定は、本番環境を対象としたものではありません。デフォルトのチャートで作成されるのは概念実証(PoC)の実装であり、そこではすべてのGitLabサービスがクラスターにデプロイされます。本番環境にデプロイする場合は、クラウドネイティブハイブリッドリファレンスアーキテクチャに従う必要があります。

本番環境へのデプロイでは、Kubernetesに関する確かな実務知識が必要です。このデプロイ方法では、管理、可観測性、概念が従来のデプロイとは異なります。

Helmを使用してデプロイする

設定オプションをすべて収集したら、依存関係を取得してHelmを実行することができます。この例では、Helmリリースをgitlabという名前にしてあります。

helm repo add gitlab https://charts.gitlab.io/
helm repo update
helm upgrade --install gitlab gitlab/gitlab \
  --timeout 600s \
  --set global.hosts.domain=example.com \
  --set global.hosts.externalIP=10.10.10.10 \
  --set certmanager-issuer.email=me@example.com

次の点に注意してください:

  • Helmコマンドは、すべてHelm v3構文を使用して指定します。
  • --generate-nameオプションを使用するのでない限り、Helm v3では、コマンドラインの位置引数としてリリース名を指定する必要があります。
  • Helm v3では、値に単位を付加して期間を指定する必要があります(例: 120s = 2m210s = 3m30s)。--timeoutオプションは、単位の指定_なし_で秒数として処理されます。
  • --timeoutオプションの使用には、紛らわしい面があります。--timeoutが適用されるHelmのインストールまたはアップグレード中にデプロイされるコンポーネントは複数あるからです。--timeoutの値は、全コンポーネントのインストールの全体に適用されるのではなく、各コンポーネントのインストールに個別に適用されます。3分後にHelmインストールを中断しようと考えて--timeout=3mを使っても、インストールされるどのコンポーネントもそれぞれが3分以内にインストールされてしまい、結果としてインストール完了が5分後になる可能性があります。

--version <installation version>オプションを使用することにより、GitLabの特定のバージョンをインストールすることもできます。

チャートのバージョンとGitLabのバージョンの間のマッピングについては、GitLabバージョンのマッピングをご覧ください。

タグの付いたリリースではなく開発ブランチをインストールする手順については、デベロッパー向けデプロイのドキュメントをご覧ください。

GitLab Helmチャートの整合性と起源を検証する

Helm来歴を使用することにより、GitLab Helmチャートの整合性と起源を検証できます。詳しくは、GitLab Helmチャートの由来をご覧ください。

デプロイをモニタリングする

これにより、デプロイ完了時に、インストールされたリソースのリストが出力されます。完了には5〜10分かかる場合があります。

デプロイの状態は、helm status gitlabを実行することにより確認できます。別のターミナルでコマンドを実行することにより、デプロイ実行中に確認することもできます。

最初のログイン

GitLabインスタンスには、インストール時に指定されたドメインにアクセスすることによってアクセスできます。グローバルホスト設定が変更されていない限り、デフォルトのドメインはgitlab.example.comになります。初期ルートパスワードのシークレットを手動で作成した場合は、それを使用してrootユーザーとしてサインインできます。そうでない場合、rootユーザー用のランダムなパスワードがGitLabによって自動作成されます。これは、次のコマンドによって抽出できます(上記のコマンドを使用した場合は<name>をリリース名gitlabに置き換えます)。

kubectl get secret <name>-gitlab-initial-root-password -ojsonpath='{.data.password}' | base64 --decode ; echo

GitLab Community Editionをデプロイする

デフォルトの場合、HelmチャートではGitLab Enterprise Edition(EE)を使用します。GitLab Enterprise Edition(EE)はGitLabの無料オープンコアバージョンであり、オプションとして追加機能を利用するには有料プランにアップグレードする必要があります。必要に応じて、代わりにMIT Expatライセンスの下でライセンスされているGitLab Community Editionを使用することもできます。2つのエディションの違いの詳細については、こちらをご覧ください。

GitLab Community Edition(CE)をデプロイするには、Helmインストールコマンドに次のオプションを含めます。

--set global.edition=ce

GitLab Community EditionをGitLab Enterprise Editionに変換する

GitLab Community Editionをデプロイした後、GitLab Enterprise Editionに変換する場合は、--set global.edition=ceを指定せずにGitLabを再デプロイする必要があります。個々のイメージ(--set gitlab.unicorn.image.repository=registry.gitlab.com/gitlab-org/build/cng/gitlab-unicorn-ceなど)も指定した場合は、それらのイメージの指定をすべて除去する必要があります。

デプロイ後、GitLab Enterprise Edition(EE)のライセンスをアクティブにすることができます。

インストールが完了したら、推奨される次のステップ(認証オプションやサインアップ制限など)を実行することを検討してください。