GitLab Helm 차트 배포

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

helm install을 실행하기 전에 GitLab을 실행할 방법에 대한 몇 가지 결정을 내려야 합니다. 옵션은 Helm의 --set option.name=value 명령행 옵션을 사용하여 지정할 수 있습니다. 본 안내서에서는 필수 값 및 일반 옵션에 대해 다룰 것입니다. 옵션의 전체 디렉터리은 Installation command line options를 참조하세요.

caution
기본 Helm 차트 구성은 프로덕션 용도가 아닙니다. 기본 차트는 모든 GitLab 서비스가 클러스터에 배포되는 POC(PoC) 구현을 생성합니다. 프로덕션 배포를 위해서는 반드시 Cloud Native Hybrid 참조 아키텍처를 따르셔야 합니다.

프로덕션 배포를 위해서는 Kubernetes에 대한 solide한 지식이 있어야 합니다. 이 배포 방식은 전통적인 배포와는 관리, 관측, 개념이 다릅니다.

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 \
  --set postgresql.image.tag=13.6.0

다음 사항을 유의하세요:

  • 모든 Helm 명령은 Helm v3 구문을 사용하여 지정됩니다.
  • Helm v3는 --generate-name 옵션을 사용하지 않는 한 릴리스 이름을 명령줄의 위치 인자로 지정해야 합니다.
  • Helm v3는 값 뒤에 단위를 추가하여 기간을 지정해야 합니다 (예: 120s = 2m210s = 3m30s). --timeout 옵션은 단위 지정 없이 초 단위로 처리됩니다.
  • --timeout 옵션의 사용은 설치하는 동안 여러 컴포넌트에 적용됩니다. --timeout 값은 개별로 각 컴포넌트의 설치에 적용되며 모든 컴포넌트의 설치에는 적용되지 않습니다. 따라서 --timeout=3m을 사용하여 3분 후에 Helm 설치를 중지하려는 경우, 설치된 컴포넌트 중 어느 것도 3분 이상 걸리지 않았기 때문에 설치가 5분 후에 완료될 수 있습니다.

특정 버전의 GitLab을 설치하려면 --version <installation version> 옵션을 사용할 수 있습니다.

차트 버전과 GitLab 버전 간의 매핑에 대한 자세한 내용은 GitLab version mappings을 참조하세요.

태그가 지정된 릴리스 대신 개발 브랜치를 설치하는 방법은 개발자 배포 문서를 참조하세요.

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

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

배포 모니터링

배포가 완료되면 설치된 리소스 디렉터리이 출력됩니다. 이 과정에는 5-10분 정도 소요될 수 있습니다.

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

초기 로그인

설치 중에 지정된 도메인을 방문하여 GitLab 인스턴스에 액세스할 수 있습니다. 기본 도메인은 gitlab.example.com이며, 전역 호스트 설정이 변경되지 않았다면 해당됩니다. 초기 루트 암호에 대한 비밀을 매뉴얼으로 생성했으면 해당 비밀을 사용하여 ‘root’ 사용자로 로그인할 수 있습니다. 그렇지 않은 경우, GitLab은 ‘root’ 사용자를 위해 무작위 암호를 자동으로 생성했습니다. 이는 다음 명령어로 추출할 수 있습니다 (위 명령을 실행했다면 gitlab을 사용합니다).

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 등), 해당 이미지에 대한 어떤 발생 사례도 생략해야 합니다.

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

권장되는 다음 단계

설치를 완료한 후, 권장 다음 단계를 수행하는 것을 고려해보세요. 이는 인증 옵션 및 가입 제한 사항 등이 포함됩니다.