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

アーキテクチャ

コンポーネントの3つの階層をサポートする予定です:

  1. Dockerコンテナ
  2. スケジューラ(Kubernetes)
  3. 高レベルの設定ツール(Helm)

お客様がインストールに使用する主な方法は、このリポジトリ内のHelmチャートです。将来的には、Amazon CloudFormationやDocker Swarmのような他のデプロイ方法も提供する可能性があります。

Dockerコンテナイメージ

前提として、各サービスに対してDockerコンテナを作成します。これにより、イメージサイズと複雑さを軽減し、より簡単な水平スケーリングが可能になります。設定は、Dockerの標準的な方法で、おそらく環境変数またはマウントされたファイルで渡される必要があります。これにより、スケジューラソフトウェアとのクリーンで共通のインターフェースが提供されます。

GitLab Dockerイメージ

GitLabアプリケーションは、GitLab固有のサービスを含むDockerイメージを使用してビルドされています。これらのイメージのビルド環境は、CNG repositoryにあります。

以下のGitLabコンポーネントには、CNGリポジトリにイメージがあります。

  • Gitaly
  • GitLab Elasticsearch Indexer
  • mail_room
  • GitLab Exporter
  • GitLab Shell
  • Sidekiq
  • GitLab Toolbox
  • Webservice
  • Workhorse

以下は、GitLab固有のDockerイメージも使用するフォークしたチャートです。

initContainersおよびさまざまなJobで使用されるDockerイメージ。

  • alpine-certificates
  • kubectl

公式Dockerイメージ

基盤となるサービスには、次の既存の公式コンテナを活用します:

GitLabチャート

これはトップレベルのGitLabチャート(gitlab)で、GitLabの完全な設定に必要なすべてのリソースを設定します。これには、GitLab、PostgreSQL、Redis、Ingress、および証明書管理チャートが含まれます。

この高レベルでは、お客様は次のような決定を下すことができます:

  • 組み込みのPostgreSQLチャートを使用するか、PostgreSQL用のAmazon RDSのような外部データベースを使用するか。
  • 独自のSSL証明書を持ち込むか、Let’s Encryptを活用するか。
  • ロードバランサーを使用するか、専用のIngressを使用するか。

手軽に始めたいお客様は、このチャートから始めることをお勧めします。

これらのチャートの構造

メインのGitLabチャートは、他の多くのチャートで構成されるアンブレラチャートです。各サブチャートは個別にドキュメント化され、chartsディレクトリ構造に一致する構造で配置されます。

GitLab以外のコンポーネントは、トップレベルでパッケージ化され、ドキュメント化されています。GitLabコンポーネントサービスは、GitLabチャートの下にドキュメント化されています:

コンポーネントリスト

チャートを使用するときにデプロイされるコンポーネントのリスト、および必要に応じて設定手順については、アーキテクチャコンポーネントリストページにあります。

設計上の判断

これらのチャートのアーキテクチャに関して行われた決定のドキュメントは、設計に関する決定のドキュメントにあります