Helm 차트에서 Linux 패키지로 이전
Tier: Free, Premium, Ultimate
Offering: Self-Managed
Offering: Self-Managed
Helm 설치에서 Linux 패키지(옴니버스) 설치로 이전하려면:
- 왼쪽 사이드바에서 아래쪽에 있는 관리자 영역(Admin Area)을 선택합니다.
- 현재 GitLab 버전을 확인하려면 개요(Overview) > 컴포넌트(Components)를 선택하세요.
- 깨끗한 머신을 준비하고, 해당하는 GitLab Helm 차트 버전에 맞는 Linux 패키지를 설치합니다.
- 이전에 GitLab Helm 차트 인스턴스에서 Git 리포지터리의 무결성을 확인합니다.
- GitLab Helm 차트 인스턴스 백업을 생성하고, 암호를 백업하는 것을 잊지 마세요.
- Linux 패키지 인스턴스에서
/etc/gitlab/gitlab-secrets.json
을 백업합니다. -
kubectl
명령을 실행하는 작업 스테이션에 yq 도구(버전 4.21.1 이상)를 설치합니다. - 작업 스테이션에서
/etc/gitlab/gitlab-secrets.json
파일의 사본을 만듭니다. -
아래 명령을 실행하여 GitLab Helm 차트 인스턴스의 비밀을 얻습니다. 적절한 값을 사용하여
GITLAB_NAMESPACE
및RELEASE
를 교체하세요: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
- 결과물은
gitlab-secrets-updated.json
이며, 이를 사용하여 Linux 패키지 인스턴스의 이전 버전인/etc/gitlab/gitlab-secrets.json
을 교체할 수 있습니다. -
/etc/gitlab/gitlab-secrets.json
을 교체한 후 Linux 패키지 인스턴스를 다시 구성합니다:sudo gitlab-ctl reconfigure
- Linux 패키지 인스턴스에서 객체 리포지터리(object storage)를 구성하고, LFS, artifacts, 업로드 등을 테스트하여 작동 여부를 확인합니다.
- 컨테이너 레지스트리를 사용하는 경우, 별도로 객체 리포지터리를 구성하세요. 통합된 객체 리포지터리는 지원되지 않습니다.
-
Helm 차트 인스턴스에 연결된 객체 리포지터리의 데이터를 Linux 패키지 인스턴스에 연결된 새로운 리포지터리로 동기화합니다. 몇 가지 참고 사항:
- S3 호환 리포지터리를 사용하는 경우 데이터를 복사하기 위해
s3cmd
유틸리티를 사용하세요. - Linux 패키지 인스턴스에서 MinIO와 같은 S3 호환 객체 리포지터리를 사용할 계획이라면,
/etc/gitlab/gitlab.rb
에서endpoint
를 MinIO를 가리키도록 구성하고path_style
을true
로 설정하세요. - 새 Linux 패키지 인스턴스에서 이전 객체 리포지터리를 재사용할 수 있습니다. 이 경우 두 개의 객체 리포지터리 간에 데이터를 동기화할 필요가 없습니다. 그러나 내장 MinIO 인스턴스를 사용 중이라면 GitLab Helm 차트를 제거할 때 해당 리포지터리가 제거될 수 있습니다.
- S3 호환 리포지터리를 사용하는 경우 데이터를 복사하기 위해
- GitLab Helm 백업을 Linux 패키지 인스턴스의
/var/opt/gitlab/backups
로 복사하고, 복원을 수행합니다. - 복원이 완료되면 doctor Rake 작업을 실행하여 비밀이 유효한지 확인합니다.
- 모든 것이 확인되면 GitLab Helm 차트 인스턴스를 제거할 수 있습니다.