GitLab_가이드

PostgreSQL HA 사용

구일칠구 2022. 8. 2. 05:13

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
            
    그런 다음 gitlab.rb배포 노드의 파일에서 데이터베이스 마스터의 호스트 및 포트로 gitlab_rails['db_host']업데이트 합니다.gitlab_rails['db_port']
  • 마스터 노드를 찾으려면 데이터베이스 노드에서 다음을 실행합니다.
  • 마이그레이션을 실행하기 전에 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