외부 NGINX Ingress Controller로 GitLab 차트 구성

이 차트는 공식 NGINX Ingress 구현과 함께 사용할 Ingress 리소스를 구성합니다. NGINX Ingress Controller는 이 차트의 일환으로 배포됩니다. 클러스터에 이미 존재하는 NGINX Ingress Controller를 재사용하려는 경우, 이 가이드가 도움이 될 것입니다.

외부 Ingress Controller의 TCP 서비스

GitLab Shell 구성 요소는 기본적으로 포트 22를 통해 TCP 트래픽이 통과하도록 요구합니다(변경할 수 있습니다). Ingress는 TCP 서비스를 직접 지원하지 않으므로 추가적인 구성이 필요합니다. NGINX Ingress Controller는 직접 배포되었을 수도 있고 (예: Kubernetes spec 파일로) 공식 Helm 차트를 통해 배포되었을 수도 있습니다. TCP 패스스루 구성은 배포 방법에 따라 다르게 됩니다.

직접 배포

직접 배포에서 NGINX Ingress Controller는 ConfigMap을 사용하여 TCP 서비스를 구성합니다(자세한 내용은 여기 참조). 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 Controller 문서에서 설명한 대로 활성화할 수 있습니다.

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

마지막으로 NGINX Ingress Controller의 Service가 80 및 443 포트 외에 포트 22도 노출하고 있는지 확인하십시오.

Helm 배포

NGINX Ingress Controller를 Helm 차트로 설치했거나 설치할 계획이라면, 명령줄을 사용하여 차트에 값을 추가해야 합니다:

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

또는 values.yaml 파일을 사용할 수 있습니다:

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

값의 형식은 “직접 배포” 섹션에서 설명한 것과 동일합니다.

GitLab Ingress 옵션 사용자 지정

NGINX Ingress Controller는 특정 Ingress를 제공할 Ingress Controller를 표시하기 위해 주석을 사용합니다(자세한 내용은 문서 참조). 이 차트와 함께 사용할 Ingress 클래스를 global.ingress.class 설정을 사용하여 구성할 수 있습니다. Helm 옵션에서 이것을 설정하십시오.

--set global.ingress.class=myingressclass

필수는 아니지만, 외부 Ingress Controller를 사용하는 경우 이 차트 기본으로 배포된 Ingress Controller를 비활성화하고 싶을 가능성이 높습니다:

--set nginx-ingress.enabled=false

사용자 지정 인증서 관리

당신의 TLS 옵션의 전체 범위는 다른 곳에 문서화되어 있습니다.

외부 Ingress Controller를 사용하고 있다면, 외부 cert-manager 인스턴스를 사용하거나 다른 방식으로 인증서를 관리하고 있을 수 있습니다.

당신의 TLS 옵션에 대한 전체 문서는 여기에 있으며, 그러나 이 논의의 목적을 위해 인증서 관리 차트를 비활성화하고 GitLab 구성 요소 차트가 내장 인증서 리소스를 찾지 않도록 설정해야 하는 두 가지 값은 다음과 같습니다:

--set certmanager.install=false

--set global.ingress.configureCertmanager=false