Linux 패키지에서 Helm 차트로 마이그레이션하기

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

이 가이드는 패키지 기반 GitLab 설치에서 Helm 차트로 마이그레이션하는 데 도움을 줄 것입니다.

전제 조건

마이그레이션 전에 몇 가지 전제 조건이 충족되어야 합니다:

  • 패키지 기반 GitLab 인스턴스가 실행 중이어야 합니다. gitlab-ctl status를 실행하여 서비스가 down 상태가 아닐 것을 확인하세요.

  • 마이그레이션 전에 Git 저장소의
    무결성을 확인하는 것이 좋습니다.

  • 패키지 기반 설치와 동일한 GitLab 버전을 실행하는 Helm 차트 기반 배포가 필요합니다.

  • Helm 차트 기반 배포에서 사용할 객체 스토리지를 설정해야 합니다. 프로덕션 사용 시
    외부 객체 스토리지를 사용하는 것을 권장하며, 여기에 접근할 수 있는 로그인 자격 증명을 준비하세요. 내장된 MinIO 서비스를 사용하는 경우, 문서를 읽어 로그인 자격 증명을 가져오는 방법을 확인하세요.

마이그레이션 단계

  1. 패키지 기반 설치에서 객체 스토리지로 기존 데이터를 마이그레이션합니다:

    1. 객체 스토리지로 마이그레이션.

    2. 패키지 기반 GitLab 인스턴스를 방문하여 마이그레이션된 데이터가 사용 가능한지 확인합니다. 예를 들어, 사용자, 그룹 및 프로젝트 아바타가 제대로 렌더링되는지, 이미지 및 이슈에 추가된 기타 파일이 올바르게 로드되는지 확인합니다.

  2. 백업 tarball을 생성하고 이미 마이그레이션된 디렉토리를 제외합니다.

    로컬 백업(기본)의 경우, 백업 파일은 /var/opt/gitlab/backups에 저장되며, 위치를 명시적으로 변경하지 않았다면 여기에 저장됩니다. 원격 스토리지 백업의 경우, 백업 파일은 구성된 버킷에 저장됩니다.

  3. 패키지 기반 설치에서 Helm 차트로 복원합니다. 비밀부터 시작합니다. /etc/gitlab/gitlab-secrets.json의 값을 Helm에서 사용될 YAML 파일로 마이그레이션해야 합니다.

  4. 변경사항이 적용되도록 모든 포드를 재시작합니다:

    kubectl delete pods -lrelease=<helm release name>
    
  5. Helm 기반 배포를 방문하여 패키지 기반 설치에 존재했던 프로젝트, 그룹, 사용자, 이슈 등이 복원되었는지 확인합니다. 업로드된 파일(아바타, 이슈에 업로드된 파일 등)이 제대로 로드되는지도 확인합니다.