GitLab 차트를 위한 OKE 리소스 준비

Tier: Free, Premium, Ultimate Offering: Self-managed

전적으로 기능하는 GitLab 인스턴스를 위해 GitLab 차트를 Oracle Container Engine for Kubernetes (OKE)에 배포하기 전에 몇 가지 리소스가 필요합니다. OKE 클러스터를 생성하기 전에 Oracle Cloud Infrastructure 테넌시를 준비하는 방법을 확인하세요.

OKE 클러스터 생성

사전 요구 사항:

Kubernetes 클러스터를 수동으로 프로비저닝하려면 OKE 지침을 따르세요. OKE에서 지원하는 작업자 노드를 위한 컴퓨트 모양의 목록을 확인하세요.

4 OCPU와 30GB의 RAM을 가진 클러스터가 권장됩니다.

GitLab에 대한 외부 액세스

기본적으로 GitLab 차트는 Oracle Cloud Infrastructure 퍼블릭 로드 밸런서를 생성하는 Ingress Controller를 배포합니다. 이 로드 밸런서는 100Mbps 모양을 가집니다. 로드 밸런서 서비스는 호스트 서브넷에서 나오지 않는 공용 플로팅 IP 주소를 할당합니다.

차트 설치 중 모양 및 기타 구성(포트, SSL, 보안 목록 등)을 변경하려면 다음 명령 줄 인수 nginx-ingress.controller.service.annotations를 사용할 수 있습니다. 예를 들어 400Mbps 모양의 로드 밸런서를 지정하려면:

--set nginx-ingress.controller.service.annotations."service\.beta\.kubernetes\.io/oci-load-balancer-shape"="400Mbps"

배포가 완료된 후에는 Ingress 컨트롤러 서비스에 연결된 주석을 확인할 수 있습니다:

$ kubectl get service gitlab-nginx-ingress-controller -o yaml

apiVersion: v1  
kind: Service  
metadata:  
  annotations:  
    ...  
    service.beta.kubernetes.io/oci-load-balancer-shape: 400Mbps  
    ...  

더 많은 정보는 OKE 로드 밸런서 문서를 확인하세요.

다음 단계

클러스터가 작동을 시작하면 차트 설치를 진행하세요. global.hosts.domain 옵션을 통해 DNS 도메인 이름을 설정하되, global.hosts.externalIP 옵션을 통해 정적 IP 설정은 생략하세요.

배포가 완료된 후 로드 밸런서의 IP 주소를 쿼리하여 DNS 레코드 유형과 연결할 수 있습니다:

kubectl get ingress/<RELEASE>-webservice-default -ojsonpath='{.status.loadBalancer.ingress[0].ip}'

<RELEASE>helm install <RELEASE>에서 사용된 릴리스 이름으로 대체해야 합니다.