外部NGINX IngressコントローラーでGitLabチャートを設定する
NGINX Ingressは非推奨となり、2026年3月以降はセキュリティパッチを受け取ることはありません。
詳細については、公式発表をお読みください。
GitLabチャートは現在、フォークしたNGINX Ingressを管理およびバンドルしています。このガイドは、バンドルされたものではなく、外部のNGINX IngressをGitLabチャートで使用するように設定するのに役立ちます。
外部IngressコントローラーのTCPサービス
GitLab Shellコンポーネントでは、TCPトラフィックが(デフォルトでは)ポート22をパススルーする必要があります(これは変更可能です)。IngressはTCPサービスを直接サポートしていないため、追加の設定が必要です。ご使用のNGINX Ingressコントローラーは、(Kubernetesスペックファイルを使用して)直接デプロイされたか、公式Helmチャート経由でデプロイされている可能性があります。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を入手したら、--tcp-services-configmapオプションを使用して、NGINX Ingressコントローラーのドキュメントの説明に従って有効にできます。
args:
- /nginx-ingress-controller
- --tcp-services-configmap=gitlab/tcp-configmap-example最後に、NGINX IngressコントローラーのServiceが、80および443に加えてポート22を公開していることを確認してください。
Helmデプロイ
Helmチャートを使用してNGINX Ingressコントローラーをインストールした、またはインストールする予定がある場合は、コマンドラインを使用してチャートに値を追加する必要があります:
--set tcp.22="gitlab/mygitlab-gitlab-shell:22"またはvalues.yamlファイル:
tcp:
22: "gitlab/mygitlab-gitlab-shell:22"値の形式は、上記の「直接デプロイ」セクションで説明されているものと同じです。
GitLabチャートを設定する
外部NGINX Ingressコントローラーを使用するようにGitLab Ingressを設定します。