Helm을 사용하여 GitLab 설치
클라우드 네이티브 GitLab Helm 차트를 사용하여 Kubernetes에 GitLab을 설치합니다.
이미 필수 구성 요소를 설치하고 구성했다고 가정하고, helm
명령어로 GitLab을 배포할 수 있습니다.
경고: 기본 Helm 차트 구성은 프로덕션용이 아닙니다. 기본 차트는 GitLab의 모든 서비스가 클러스터에 배포되는 컨셉 프로포절(Proof of Concept, PoC) 구현을 만듭니다. 프로덕션 배포에서는 Cloud Native Hybrid 참조 아키텍처를 따라야 합니다.
프로덕션 배포에는 Kubernetes에 대한 뛰어난 지식이 필요합니다. 이 배포 방법은 전통적인 배포와는 관리, 관찰 가능성, 그리고 컨셉이 다릅니다.
프로덕션 배포에서:
- PostgreSQL이나 Gitaly(깃 리포지토리 저장소 데이터플레인)와 같은 상태 유지(stateful) 컴포넌트는 클러스터 외부에서 PaaS 또는 컴퓨팅 인스턴스에서 실행되어야 합니다. 이 구성은 프로덕션 GitLab 환경에서 발견되는 다양한 워크로드를 확장하고 안정적으로 서비스할 수 있도록 필요합니다.
- 비-Git 리포지토리 저장소에 대해서는 PostgreSQL, Redis, 객체 스토리지에 Cloud PaaS를 사용해야 합니다.
GitLab 인스턴스에서 Kubernetes가 필요하지 않은 경우, 보다 간단한 대안은 참조 아키텍처 를 참조하세요.
Helm 차트를 사용하여 외부 상태 유지 데이터로 구성
GitLab Helm 차트를 구성하여 PostgreSQL, Redis, 비-Git 리포지토리 저장소뿐만 아니라 Git 리포지토리 저장소(Gitaly)와 같은 외부 상태 유지 저장소를 가리킬 수 있습니다.
다음 인프라스트럭처 코드(Infrastructure as Code, IaC) 옵션을 사용합니다.
프로덕션용 구현에는 선택한 참조 아키텍처에 맞는 미리 구축된 외부 상태 저장소로 가리키기 위해 적절한 차트 매개변수를 사용해야 합니다.
참조 아키텍처 사용
Kubernetes에 GitLab 인스턴스를 배포하는 참조 아키텍처는 Cloud Native Hybrid라고 합니다. 이는 프로덕션용 구현에서 클러스터에서 모든 GitLab 서비스를 실행할 수 없기 때문에 특별히 이와 같이 지어졌습니다. 모든 상태 유지 GitLab 컴포넌트는 Kubernetes 클러스터 외부에 위치해야 합니다.
사용 가능한 Cloud Native Hybrid 참조 아키텍처 크기는 참조 아키텍처 페이지에 나열되어 있습니다. 예를 들어, 이것은 3,000 사용자를 위한 Cloud Native Hybrid 참조 아키텍처입니다.
인프라스트럭처 코드(IaC)와 빌더 리소스 사용
GitLab은 Helm 차트와 보조 클라우드 인프라를 구성할 수 있는 인프라스트럭처 코드를 개발합니다:
- GitLab Environment Toolkit IaC.
- 구현 패턴: AWS EKS에서 GitLab 클라우드 네이티브 하이브리드 프로비저닝: 이 리소스는 GitLab 성능 도구킷과 함께 테스트된 자료 목록을 제공하며, 예산을 위해 AWS 비용 계산기를 사용합니다.