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

外部NGINX IngressコントローラーでGitLabチャートを設定する

このチャートは、公式のNGINX Ingress実装で使用するためのIngressリソースを設定します。NGINX Ingressコントローラーは、このチャートの一部としてデプロイされます。クラスタ内で既に利用可能な既存のNGINX Ingressコントローラーを再利用する場合は、このガイドが役立ちます。

外部IngressコントローラーのTCPサービス

GitLab Shellコンポーネントは、ポート22(デフォルト)でTCPトラフィックが通過する必要があります(変更可能)。IngressはTCPサービスを直接サポートしていないため、追加の設定が必要です。NGINX Ingressコントローラーは、(Kubernetes仕様ファイルを使用して)直接デプロイされたか、公式Helm Chartを介してデプロイされた可能性があります。TCPパススルーの設定は、デプロイアプローチによって異なります。

直接デプロイ

直接デプロイでは、NGINX IngressコントローラーはConfigMapを使用してTCPサービスの設定を処理します。詳細については、Ingress NGINXコントローラーのドキュメントのTCPおよびUDPサービスの公開を参照してください。GitLabチャートがネームスペースgitlabにデプロイされ、Helmリリースにmygitlabという名前が付けられているとすると、ConfigMapは次のようになります:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-configmap-example
data:
  22: "gitlab/mygitlab-gitlab-shell:22"

そのConfigMapを取得したら、NGINX Ingressコントローラーのドキュメントに記載されているように、--tcp-services-configmapオプションを使用して有効にできます。

args:
  - /nginx-ingress-controller
  - --tcp-services-configmap=gitlab/tcp-configmap-example

最後に、NGINX IngressコントローラーのServiceが、80および443に加えてポート22を公開していることを確認してください。

Helmデプロイ

NGINX IngressコントローラーをHelmチャートを使用してインストールした場合、またはインストールを計画している場合は、コマンドラインを使用してチャートに値を追加する必要があります:

--set tcp.22="gitlab/mygitlab-gitlab-shell:22"

または、values.yamlファイルを使用します:

tcp:
  22: "gitlab/mygitlab-gitlab-shell:22"

値の形式は、上記の「直接デプロイメント」セクションで説明されているものと同じです。

GitLab Ingressオプションをカスタマイズする

NGINX Ingressコントローラーは注釈を使用して、どのIngressコントローラーが特定のIngressにサービスを提供するかをマークします(ドキュメントを参照)。global.ingress.class設定を使用して、このチャートで使用するIngressクラスを設定できます。必ずHelmオプションでこれを設定してください。

--set global.ingress.class=myingressclass

必ずしも必須ではありませんが、外部のIngressコントローラーを使用している場合は、デフォルトでこのチャートとともにデプロイされるIngressコントローラーを無効にすることをお勧めします:

--set nginx-ingress.enabled=false

カスタム証明書管理

TLSオプションの完全なスコープは、別の場所にドキュメント化されています。

外部のIngressコントローラーを使用している場合は、外部のcert-managerインスタンスを使用したり、他のカスタム方法で証明書を管理したりすることもできます。TLSオプションに関する完全なドキュメントについては、GitLabチャートのTLSを設定するを参照してください。ただし、このディスカッションの目的のために、cert-managerチャートを無効にし、GitLabコンポーネントチャートに組み込みの証明書リソースを探さないように指示するために設定する必要がある2つの値があります:

--set installCertmanager=false
--set global.ingress.configureCertmanager=false