PostgreSQL HA 사용
가 될 노드를 선택하십시오 Deploy Node. 모든 애플리케이션 노드가 될 수 있지만 프로세스 전체에서 동일한 노드여야 합니다.
노드 배포
- 에 빈 파일을 만듭니다 /etc/gitlab/skip-auto-reconfigure. 이렇게 하면 gitlab-ctl reconfigure기본적으로 GitLab을 자동으로 중지하고, 모든 데이터베이스 마이그레이션을 실행하고, GitLab을 다시 시작하는 업그레이드가 실행되지 않습니다.
-
sudo touch /etc/gitlab/skip-auto-reconfigure
Deploy 노드 를 포함한 모든 노드
- reconfigure데이터베이스 마이그레이션이 자동으로 실행 되지 않도록 하려면 gitlab_rails['auto_migrate'] = false이 에 설정되어 있는지 확인 /etc/gitlab/gitlab.rb하십시오.
Gitaly 전용 노드
- GitLab 패키지 업데이트Community Edition 사용자인 경우 위 명령에서 로 바꿉니다 gitlab-ee.gitlab-ce
-
# Debian/Ubuntu sudo apt-get update && sudo apt-get install gitlab-ee # Centos/RHEL sudo yum install gitlab-ee
- 노드가 최신 코드를 실행 중인지 확인
-
sudo gitlab-ctl reconfigure
노드 배포
- GitLab 패키지 업데이트Community Edition 사용자인 경우 위 명령에서 로 바꿉니다 gitlab-ee.gitlab-ce
-
# Debian/Ubuntu sudo apt-get update && sudo apt-get install gitlab-ee # Centos/RHEL sudo yum install gitlab-ee
- PgBouncer를 사용하는 경우:Rails는 동일한 데이터베이스에서 동시 마이그레이션이 실행되는 것을 방지하기 위해 마이그레이션을 실행할 때 권고 잠금을 사용합니다. 이러한 잠금은 트랜잭션 간에 공유되지 않으므로 ActiveRecord::ConcurrentMigrationError 트랜잭션 풀링 모드에서 PgBouncer를 사용하여 데이터베이스 마이그레이션을 실행할 때 및 기타 문제가 발생합니다.
sudo gitlab-ctl patroni members
- 마스터 노드를 찾으려면 데이터베이스 노드에서 다음을 실행합니다.
- 마이그레이션을 실행하기 전에 PgBouncer를 우회하고 데이터베이스 마스터에 직접 연결해야 합니다.
- 정기적인 데이터베이스 마이그레이션 및 최신 코드를 얻으려면 다음을 실행하십시오.
-
sudo gitlab-ctl reconfigure sudo SKIP_POST_DEPLOYMENT_MIGRATIONS=true gitlab-rake db:migrate
Deploy 노드 를 제외한 모든 노드
- GitLab 패키지 업데이트Community Edition 사용자인 경우 위 명령에서 로 바꿉니다 gitlab-ee.gitlab-ce
-
sudo apt-get update && sudo apt-get install gitlab-ee
- 노드가 최신 코드를 실행 중인지 확인
-
sudo gitlab-ctl reconfigure
노드 배포
- 배포 노드에서 배포 후 데이터베이스 마이그레이션을 실행하여 마이그레이션을 완료합니다.
-
sudo gitlab-rake db:migrate
Puma 또는 Sidekiq를 실행하는 노드의 경우
- 핫 리로드 puma및 sidekiq서비스
-
sudo gitlab-ctl hup puma sudo gitlab-ctl restart sidekiq
- PgBouncer를 사용하는 경우:
sudo gitlab-ctl reconfigure
- gitlab.rbPgBouncer를 다시 가리키도록 변경하고 다음을 실행합니다 .
향후 다운타임 없는 업그레이드를 실행하지 않으려면 이 단계를 완료한 후 /etc/gitlab/skip-auto-reconfigure설정을 제거하고 되돌리 gitlab_rails['auto_migrate'] = false십시오 ./etc/gitlab/gitlab.rb
'GitLab_가이드' 카테고리의 다른 글
Geo를 사용한 다중 노드/HA 배포 (0) | 2022.08.02 |
---|---|
Redis HA 사용(Sentinel 사용) (0) | 2022.08.02 |
다중 노드/HA 배포 (0) | 2022.08.02 |
다운타임 없는 업그레이드 (0) | 2022.08.01 |
소스에서 Community Edition 및 Enterprise Edition 업그레이드 (0) | 2022.08.01 |