GitLab Helmチャートをデプロイします。

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

caution
デフォルトのHelmチャート設定は本番環境向けではありません。デフォルトのチャートでは、すべてのGitLabサービスがクラスターにデプロイされる概念実証(PoC)実装が作成されます。本番デプロイでは、Cloud Native Hybridリファレンスアーキテクチャに従う必要があります。

本番デプロイを行うには、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 \
  --set postgresql.image.tag=13.6.0

以下に注意してください。

  • すべてのHelmコマンドはHelm v3構文で指定されます。
  • Helm v3では、--generate-name オプションを使用しない限り、リリース名をコマンドラインの位置引数として指定する必要があります。
  • Helm v3 では、期間に単位を付加して指定する必要があります (例:120s =2m,210s =3m30s)。--timeout オプションは単位を指定_せずに_秒数として扱われます。
  • --timeout オプションの使用は、Helm のインストールまたはアップグレード中にデプロイされる複数のコンポーネントがあるため、このオプションが--timeout 適用 --timeoutされると誤魔化されます。--timeout この --timeout値は各コンポーネントのインストールに個別に適用され、すべてのコンポーネントのインストールに適用されるわけではありません。そのため、--timeout=3m 、Helmのインストールを3分後に中止するつもりで実行すると、インストールされたコンポーネントのどれもがインストールに3分以上かからなかったため、インストールが5分後に完了する可能性があります。

特定のバージョンの GitLab をインストールしたい場合は、--version <installation version> オプションを使用することもできます。

ChartのバージョンとGitLabのバージョン間のマッピングについては、GitLabのバージョンマッピングをお読みください。

タグ付きリリースではなく開発ブランチをインストールする手順は、開発者デプロイのドキュメントにあります。

デプロイの監視

デプロイが終了すると、インストールされたリソースのリストが出力されます(5~10分かかる場合があります)。

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

初期ログイン

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

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

コミュニティ版のデプロイ

デフォルトでは、HelmチャートはGitLabのEnterprise Editionを使用します。EnterpriseエディションはGitLabの無料のオープンコア版で、有料版にアップグレードすることで追加機能を利用できるようになります。必要であれば、MIT ExpatライセンスのCommunity Editionを使うこともできます。両者の違いについてはこちらをご覧ください。

コミュニティ版をデプロイするには、Helmインストールコマンドにこのオプションを含めます:

--set global.edition=ce

コミュニティ版からエンタープライズ版への変換

Community Edition をデプロイしてEnterprise Edition に変換したい場合は、--set global.edition=ce を指定せずに GitLab を再デプロイする必要があります。また、内部イメージ(例えば--set gitlab.unicorn.image.repository=registry.gitlab.com/gitlab-org/build/cng/gitlab-unicorn-ce )を指定した場合は、それらのイメージを省略する必要があります。

デプロイ後、Enterprise Editionのライセンスをアクティベートすることができます。

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