InfoGrab Docs

Geo 페일오버 문제 해결

요약

다음은 페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 발생할 수 있는 오류 메시지와 해결 전략입니다. 보조 사이트를 승격할 때 다음 오류 메시지가 발생할 수 있습니다: gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node를 실행할 때 이 메시지가 나타나면 Rails 콘솔을 열고 다음을 실행합니다:

페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 오류 수정#

다음은 페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 발생할 수 있는 오류 메시지와 해결 전략입니다.

메시지: ActiveRecord::RecordInvalid: Validation failed: Name has already been taken#

보조 사이트를 승격할 때 다음 오류 메시지가 발생할 수 있습니다:

Running gitlab-rake gitlab:geo:set_secondary_as_primary...

rake aborted!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:236:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

You successfully promoted this node!

gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node를 실행할 때 이 메시지가 나타나면 Rails 콘솔을 열고 다음을 실행합니다:

Rails.application.load_tasks; nil
Gitlab::Geo.expire_cache!
Rake::Task['gitlab:geo:set_secondary_as_primary'].invoke

메시지: NoMethodError: undefined method `secondary?' for nil:NilClass#

보조 사이트를 승격할 때 다음 오류 메시지가 발생할 수 있습니다:

sudo gitlab-rake gitlab:geo:set_secondary_as_primary

rake aborted!
NoMethodError: undefined method `secondary?' for nil:NilClass
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:232:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

이 명령은 보조 사이트에서만 실행하도록 설계되었으며, 기본 사이트에서 이 명령을 실행하려고 하면 이 오류 메시지가 표시됩니다.

만료된 아티팩트#

어떤 이유로 Geo 보조 사이트에 Geo 기본 사이트보다 더 많은 아티팩트가 있다면, Rake 작업을 사용하여 고아 아티팩트 파일을 정리할 수 있습니다.

Geo 보조 사이트에서 이 명령은 디스크의 고아 파일과 관련된 모든 Geo 레지스트리 레코드도 정리합니다.

로그인 오류 수정#

메시지: 포함된 리디렉션 URI가 유효하지 않습니다#

기본 사이트의 웹 인터페이스에 로그인할 수 있지만 보조 웹 인터페이스에 로그인하려 할 때 이 오류 메시지가 나타나면, Geo 사이트의 URL이 외부 URL과 일치하는지 확인해야 합니다.

사전 요구 사항:

  • 관리자 액세스 권한.

기본 사이트에서:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
  3. 영향받는 보조 사이트를 찾아 Edit을 선택합니다.
  4. URL 필드가 보조 사이트의 Rails 노드/etc/gitlab/gitlab.rb에서 external_url "https://gitlab.example.com"에 있는 값과 일치하는지 확인합니다.

보조 사이트에서 SAML 인증 시 항상 기본 사이트로 이동#

문제는 일반적으로 GitLab 15.1로 업그레이드할 때 발생합니다. 이 문제를 해결하려면 Single Sign-On을 사용하는 Geo에서 인스턴스 전체 SAML 구성을 참조하세요.

부분 페일오버에서 복구#

보조 Geo 사이트로의 부분 페일오버는 일시적/임시적 문제의 결과일 수 있습니다. 따라서 먼저 promote 명령을 다시 실행해 보세요.

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly 및 Rails 노드에 SSH로 접속하여 다음 명령 중 하나를 실행합니다:

    • 보조 사이트를 기본 사이트로 승격하려면:

      sudo gitlab-ctl geo promote
      
    • 추가 확인 없이 보조 사이트를 기본 사이트로 승격하려면:

      sudo gitlab-ctl geo promote --force
      
  2. 이전에 보조 사이트에 사용했던 URL을 사용하여 새로 승격된 기본 사이트에 연결할 수 있는지 확인합니다.

  3. 성공하면 보조 사이트가 기본 사이트로 승격됩니다.

이전 단계가 성공하지 못한 경우 다음 단계를 진행합니다:

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly 및 Rails 노드에 SSH로 접속하여 다음 작업을 수행합니다:

    • 다음 내용으로 /etc/gitlab/gitlab-cluster.json 파일을 생성합니다:

      {
        "primary": true,
        "secondary": false
      }
      
    • 변경 사항이 적용되도록 GitLab을 재구성합니다:

      sudo gitlab-ctl reconfigure
      
  2. 이전에 보조 사이트에 사용했던 URL을 사용하여 새로 승격된 기본 사이트에 연결할 수 있는지 확인합니다.

  3. 성공하면 보조 사이트가 기본 사이트로 승격됩니다.

Geo 페일오버 문제 해결

Tier: Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

다음은 페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 발생할 수 있는 오류 메시지와 해결 전략입니다. 보조 사이트를 승격할 때 다음 오류 메시지가 발생할 수 있습니다: gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node를 실행할 때 이 메시지가 나타나면 Rails 콘솔을 열고 다음을 실행합니다:

페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 오류 수정#

다음은 페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 발생할 수 있는 오류 메시지와 해결 전략입니다.

메시지: ActiveRecord::RecordInvalid: Validation failed: Name has already been taken#

보조 사이트를 승격할 때 다음 오류 메시지가 발생할 수 있습니다:

Running gitlab-rake gitlab:geo:set_secondary_as_primary...

rake aborted!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:236:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

You successfully promoted this node!

gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node를 실행할 때 이 메시지가 나타나면 Rails 콘솔을 열고 다음을 실행합니다:

Rails.application.load_tasks; nil
Gitlab::Geo.expire_cache!
Rake::Task['gitlab:geo:set_secondary_as_primary'].invoke

메시지: NoMethodError: undefined method `secondary?' for nil:NilClass#

보조 사이트를 승격할 때 다음 오류 메시지가 발생할 수 있습니다:

sudo gitlab-rake gitlab:geo:set_secondary_as_primary

rake aborted!
NoMethodError: undefined method `secondary?' for nil:NilClass
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:232:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

이 명령은 보조 사이트에서만 실행하도록 설계되었으며, 기본 사이트에서 이 명령을 실행하려고 하면 이 오류 메시지가 표시됩니다.

만료된 아티팩트#

어떤 이유로 Geo 보조 사이트에 Geo 기본 사이트보다 더 많은 아티팩트가 있다면, Rake 작업을 사용하여 고아 아티팩트 파일을 정리할 수 있습니다.

Geo 보조 사이트에서 이 명령은 디스크의 고아 파일과 관련된 모든 Geo 레지스트리 레코드도 정리합니다.

로그인 오류 수정#

메시지: 포함된 리디렉션 URI가 유효하지 않습니다#

기본 사이트의 웹 인터페이스에 로그인할 수 있지만 보조 웹 인터페이스에 로그인하려 할 때 이 오류 메시지가 나타나면, Geo 사이트의 URL이 외부 URL과 일치하는지 확인해야 합니다.

사전 요구 사항:

  • 관리자 액세스 권한.

기본 사이트에서:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
  3. 영향받는 보조 사이트를 찾아 Edit을 선택합니다.
  4. URL 필드가 보조 사이트의 Rails 노드/etc/gitlab/gitlab.rb에서 external_url "https://gitlab.example.com"에 있는 값과 일치하는지 확인합니다.

보조 사이트에서 SAML 인증 시 항상 기본 사이트로 이동#

문제는 일반적으로 GitLab 15.1로 업그레이드할 때 발생합니다. 이 문제를 해결하려면 Single Sign-On을 사용하는 Geo에서 인스턴스 전체 SAML 구성을 참조하세요.

부분 페일오버에서 복구#

보조 Geo 사이트로의 부분 페일오버는 일시적/임시적 문제의 결과일 수 있습니다. 따라서 먼저 promote 명령을 다시 실행해 보세요.

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly 및 Rails 노드에 SSH로 접속하여 다음 명령 중 하나를 실행합니다:

    • 보조 사이트를 기본 사이트로 승격하려면:

      sudo gitlab-ctl geo promote
      
    • 추가 확인 없이 보조 사이트를 기본 사이트로 승격하려면:

      sudo gitlab-ctl geo promote --force
      
  2. 이전에 보조 사이트에 사용했던 URL을 사용하여 새로 승격된 기본 사이트에 연결할 수 있는지 확인합니다.

  3. 성공하면 보조 사이트가 기본 사이트로 승격됩니다.

이전 단계가 성공하지 못한 경우 다음 단계를 진행합니다:

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly 및 Rails 노드에 SSH로 접속하여 다음 작업을 수행합니다:

    • 다음 내용으로 /etc/gitlab/gitlab-cluster.json 파일을 생성합니다:

      {
        "primary": true,
        "secondary": false
      }
      
    • 변경 사항이 적용되도록 GitLab을 재구성합니다:

      sudo gitlab-ctl reconfigure
      
  2. 이전에 보조 사이트에 사용했던 URL을 사용하여 새로 승격된 기본 사이트에 연결할 수 있는지 확인합니다.

  3. 성공하면 보조 사이트가 기본 사이트로 승격됩니다.