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

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

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

필수 조건

마이그레이션 전에 몇 가지 필수 조건을 충족해야 합니다:

  • 패키지 기반의 GitLab 인스턴스가 실행 중이어야 합니다. gitlab-ctl status를 실행하고 서비스가 다운 상태를 보고하지 않는지 확인하세요.
  • 마이그레이션 이전에 Git 저장소의 무결성을 확인하는 것이 좋습니다.
  • 패키지 기반 설치와 동일한 GitLab 버전을 실행 중인 Helm 차트 기반의 배포가 필요합니다.
  • Helm 차트 기반의 배포에서 사용할 객체 저장소를 설정해야 합니다. 프로덕션 환경에서는 외부 객체 저장소를 사용하고 로그인 자격 증명을 준비하는 것이 좋습니다. 내장된 MinIO 서비스를 사용하는 경우 문서를 참조하여 로그인 자격 증명을 가져오는 방법을 확인하세요.

마이그레이션 단계

경고: JUnit 테스트 보고서 아티팩트 (junit.xml.gz) 마이그레이션은 gitlab:artifacts:migrate 스크립트로는 GitLab 12.8까지 지원되지 않았습니다.

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

    1. 객체 저장소로 마이그레이션.

    2. 패키지 기반의 GitLab 인스턴스를 방문하고 마이그레이션된 데이터가 사용 가능한지 확인하세요. 예를 들어 사용자, 그룹 및 프로젝트 아바타가 정상적으로 렌더링되는지, 이슈에 추가된 이미지 및 기타 파일이 올바르게 로드되는지 등을 확인하세요.

  2. 백업 tar볼을 생성하고 이미 마이그레이션된 디렉토리를 제외하세요.

    백업 파일은 /var/opt/gitlab/backups에 저장되며, 명시적으로 변경하지 않는 한 해당 위치에 저장됩니다.

  3. 패키지 기반 설치에서 복원하여 Helm 차트로 이동하되, 먼저 비밀을 시작으로 마이그레이션해야 합니다. /etc/gitlab/gitlab-secrets.json의 값들을 Helm에서 사용할 YAML 파일로 마이그레이션해야 합니다.
  4. 모든 파드를 재시작하여 변경 사항이 적용되도록 해야 합니다:

    kubectl delete pods -lrelease=<helm release name>
    
  5. Helm 기반 배포를 방문하고 패키지 기반 설치에 있던 프로젝트, 그룹, 사용자, 이슈 등이 복원되었는지 확인하세요. 또한 업로드된 파일(아바타, 이슈에 업로드된 파일 등)이 올바르게 로드되는지 확인하세요.