GitLab Helm 차트 배포

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

helm install을 실행하기 전에 GitLab을 실행하는 방법에 대해 몇 가지 결정해야 합니다. 옵션은 Helm의 --set option.name=value 명령줄 옵션을 사용하여 지정할 수 있습니다. 이 가이드에서는 필수 값 및 일반 옵션을 다룹니다. 옵션의 완전한 목록은 Installation command line options를 읽어보세요.

경고: 기본 Helm 차트 구성은 프로덕션 용이 아닙니다. 기본 차트는 모든 GitLab 서비스가 클러스터에 배포되는 증명 구현을 만듭니다. 프로덕션 배포에는 Cloud Native Hybrid reference architecture를 따라야 합니다.

프로덕션 배포를 위해서는 Kubernetes에 대해 강력한 근무 지식이 있어야 합니다. 이 배포 방법은 전통적인 배포와는 다른 관리, 관측 및 개념을 갖고 있습니다.

Helm을 사용하여 배포

구성 옵션을 모두 모은 후, 종속성을 설치하고 Helm을 실행할 수 있습니다. 이 예에서는 Helm 릴리스를 gitlab으로 지정했습니다.

helm repo add gitlab https://charts.gitlab.io/
helm repo update
helm upgrade --install gitlab gitlab/gitlab \
  --timeout 600s \
  --set global.hosts.domain=example.com \
  --set global.hosts.externalIP=10.10.10.10 \
  --set certmanager-issuer.email=me@example.com

다음 사항을 주목하세요:

  • 모든 Helm 명령어는 Helm v3 구문을 사용하여 지정합니다.
  • Helm v3는 --generate-name 옵션을 사용하지 않는 이상 명령줄에서 릴리스 이름을 지정해야 합니다.
  • Helm v3는 값에 붙은 단위로 지속 시간을 지정해야 합니다 (예: 120s = 2m210s = 3m30s). --timeout 옵션은 단위 지정 없이 초 단위로 처리됩니다.
  • --timeout 옵션의 사용은 실제로 Helm 설치 중에 --timeout이 적용되는 여러 구성 요소가 있는데, 각 구성 요소의 설치에 --timeout 값이 적용됩니다. 즉, --timeout=3m으로 3분 후 Helm 설치를 중단하려는 의도는 모든 구성 요소의 설치에 적용되지 않기 때문에 설치가 5분 후에 완료될 수 있습니다.

원하는 경우 --version <installation version> 옵션을 사용하여 특정 버전의 GitLab을 설치할 수도 있습니다.

차트 버전과 GitLab 버전 간의 매핑에 대한 자세한 내용은 GitLab version mappings를 읽어보세요.

태그가 지정된 릴리스 대신 개발 브랜치를 설치하는 지침은 developer deploy documentation에서 찾을 수 있습니다.

GitLab Helm 차트의 무결성과 원점 확인

GitLab Helm charts의 무결성과 원점을 확인하려면 Helm provenance를 사용할 수 있습니다.

배포 모니터링

배포가 완료되면 설치된 리소스 목록이 출력됩니다. 이 작업에는 5-10분이 소요될 수 있습니다.

배포의 상태는 helm status gitlab을 실행하여 확인할 수 있으며, 또한 배포가 진행 중일 때 다른 터미널에서 해당 명령을 실행할 수도 있습니다.

초기 로그인

설치 중에 지정된 도메인을 방문하여 GitLab 인스턴스에 액세스할 수 있습니다. 기본 도메인은 gitlab.example.com이지만, 전역 호스트 설정이 변경되지 않았다면 그것이 기본 도메인입니다. 초기 루트 암호를 수동으로 생성한 경우, 해당 암호로 root 사용자로 로그인할 수 있습니다. 그렇지 않은 경우 GitLab이 root 사용자를 위해 무작위 암호를 자동으로 만들었을 것입니다. 이 암호는 다음 명령을 사용하여 추출할 수 있습니다(위의 명령에서 사용한 명령어에 release의 이름을 넣으세요).

kubectl get secret <name>-gitlab-initial-root-password -ojsonpath='{.data.password}' | base64 --decode ; echo

커뮤니티 에디션 배포

기본적으로 Helm 차트는 GitLab의 엔터프라이즈 에디션을 사용합니다. 엔터프라이즈 에디션은 추가 기능을 잠금해제하기 위해 유료 티어로 업그레이드하는 옵션을 제공하는 GitLab의 무료 오픈 코어 버전입니다. 원하는 경우 MIT Expat 라이선스에 따라 라이선스가 부여된 커뮤니티 에디션을 대신 사용할 수 있습니다. 두 버전 간의 차이점에 대해 자세히 알아보세요.

커뮤니티 에디션을 배포하려면 Helm 설치 명령에 이 옵션을 포함하세요:

--set global.edition=ce

커뮤니티 에디션을 엔터프라이즈 에디션으로 변환

만약 커뮤니티 에디션을 배포했고 엔터프라이즈 에디션으로 변환하고 싶다면, --set global.edition=ce를 지정하지 않은 채 GitLab을 다시 배포해야 합니다. 개별 이미지를 지정한 경우(예: --set gitlab.unicorn.image.repository=registry.gitlab.com/gitlab-org/build/cng/gitlab-unicorn-ce), 해당 이미지의 모든 발생을 제거해야 합니다.

배포 후, 엔터프라이즈 에디션 라이선스를 활성화할 수 있습니다.

권장되는 다음 단계

설치를 완료한 후, 인증 옵션 및 회원 가입 제한 사항을 포함한 권장되는 다음 단계를 고려해 보세요.