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

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

Helm 설치에서 Linux 패키지(Omnibus) 설치로 마이그레이션하려면:

  1. 왼쪽 사이드바에서, 하단의 Admin Area를 선택합니다.
  2. Overview > Components를 선택하여 현재 GitLab 버전을 확인합니다.
  3. 깨끗한 머신을 준비하고
    Linux 패키지를 설치합니다
    GitLab Helm 차트 버전과 일치하도록 합니다.
  4. 마이그레이션 전에 GitLab Helm 차트 인스턴스에서
    Git 저장소의 무결성을 확인합니다.
  5. GitLab Helm 차트 인스턴스의 백업을 생성하고
    비밀을 백업하는 것도 잊지 마세요.
  6. Linux 패키지 인스턴스에서 /etc/gitlab/gitlab-secrets.json을 백업합니다.
  7. kubectl 명령을 실행하는 워크스테이션에 yq 도구(버전 4.21.1 이상)를 설치합니다.
  8. 워크스테이션에서 /etc/gitlab/gitlab-secrets.json 파일의 복사본을 만듭니다.
  9. 다음 명령을 실행하여 GitLab Helm 차트 인스턴스에서 비밀을 가져옵니다.
    GITLAB_NAMESPACERELEASE를 적절한 값으로 교체합니다:

    kubectl get secret -n GITLAB_NAMESPACE RELEASE-rails-secret -ojsonpath='{.data.secrets\.yml}' | yq '@base64d | from_yaml | .production' -o json > rails-secrets.json
    yq eval-all 'select(filename == "gitlab-secrets.json").gitlab_rails = select(filename == "rails-secrets.json") | select(filename == "gitlab-secrets.json")' -ojson  gitlab-secrets.json rails-secrets.json > gitlab-secrets-updated.json
    
  10. 결과는 gitlab-secrets-updated.json이며, 이를 사용하여 Linux 패키지 인스턴스의 /etc/gitlab/gitlab-secrets.json의 이전 버전을 교체할 수 있습니다.
  11. /etc/gitlab/gitlab-secrets.json을 교체한 후, Linux 패키지 인스턴스를 재구성합니다:

    sudo gitlab-ctl reconfigure
    
  12. Linux 패키지 인스턴스에서 객체 저장소를 구성합니다,
    LFS, 아티팩트, 업로드 등을 테스트하여 작동하는지 확인합니다.
  13. 컨테이너 레지스트리를 사용하는 경우, 객체 저장소를 별도로 구성합니다.
    통합된 객체 저장소는 지원하지 않습니다.
  14. Helm 차트 인스턴스와 연결된 객체 저장소의 데이터를
    Linux 패키지 인스턴스와 연결된 새로운 저장소로 동기화합니다. 몇 가지 주의 사항:

    • S3 호환 저장소의 경우, s3cmd 유틸리티를 사용하여 데이터를 복사합니다.
    • Linux 패키지 인스턴스와 함께 MinIO와 같은 S3 호환 객체 저장소를 사용할 계획이라면,
      MinIO를 가리키는 endpoint 옵션을 구성하고 /etc/gitlab/gitlab.rb에서 path_styletrue로 설정해야 합니다.
    • 이전 객체 저장소를 새로운 Linux 패키지 인스턴스와 재사용할 수 있습니다.
      이 경우 두 개의 객체 저장소 간에 데이터를 동기화할 필요가 없습니다. 그러나
      내장된 MinIO 인스턴스를 사용하는 경우 GitLab Helm 차트를 제거하면 저장소가 해제될 수 있습니다.
  15. GitLab Helm 백업을 Linux 패키지 인스턴스의 /var/opt/gitlab/backups에 복사한 뒤,
    복원 작업을 수행합니다.
  16. 복원이 완료된 후 doctor Rake 작업을 실행하여 비밀이 유효한지 확인합니다.
  17. 모든 것이 확인된 후,
    GitLab Helm 차트 인스턴스를 제거할 수 있습니다.