Linux 패키지에서 Helm 차트로 이주하기

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

이 가이드는 패키지 기반의 GitLab 설치에서 Helm 차트로의 이주를 돕습니다.

전제 조건

이주 전에 몇 가지 전제 조건을 충족해야 합니다:

  • 패키지 기반의 GitLab 인스턴스는 실행 중이어야 합니다. gitlab-ctl status를 실행하고 어떤 서비스도 down 상태를 보고하지 않는지 확인하세요.
  • 이주 전에 무결성을 확인하는 것이 좋습니다.
  • 패키지 기반 설치와 동일한 GitLab 버전을 실행하는 Helm 차트 기반의 배포가 필요합니다.
  • Helm 차트 기반 배포에서 사용할 객체 리포지터리를 설정해야 합니다. 운영용으로 외부 객체 리포지터리를 사용하는 것을 권장하며, 이를 위해 접근 자격 증명을 준비해야 합니다. 만약 내장 MinIO 서비스를 사용 중이라면, 해당 서비스로부터 로그인 자격 증명을 가져오는 방법에 대해 문서를 참조하세요.

이주 단계

  1. 패키지 기반 설치로부터 모든 기존 데이터를 객체 리포지터리로 이주하세요:

    1. 객체 리포지터리로 이주.

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

  2. 백업 타볼 생성하고 이미 이주된 디렉터리를 제외하세요.

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

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

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