다중 외부 데이터베이스를 사용하여 GitLab 차트 구성하기 (알파)
경고: 이 기능은 프로덕션 환경에서 사용하기에 준비되지 않았습니다. 알려진 문제로 인해, GitLab을 다중 데이터베이스로 구성하는 것은 알파 상태입니다.
기본적으로 GitLab은 main
데이터베이스라고 하는 단일 애플리케이션 데이터베이스를 사용합니다.
GitLab을 확장하기 위해, GitLab을 여러 외부 애플리케이션 데이터베이스를 사용하도록 구성할 수 있습니다.
즉, main
과 ci
라고 하는 다음과 같은 여러 외부 애플리케이션 데이터베이스를 사용합니다. 다음 다이어그램은 파드가 여러 데이터베이스와 통신하는 방법을 보여줍니다.
전제 조건:
- 외부 데이터베이스 문서에 나열된 모든 전제 조건.
- 추가로 비어 있는
gitlabhq_production_ci
데이터베이스는 PostgreSQL과 같은 서버에서 실행되어야 합니다. -
kubectl
및helm
CLI 도구를 사용하여 Kubernetes 클러스터에 액세스합니다. 자세한 정보는 GitLab 차트 전제 조건을 참조하세요.
다중 외부 데이터베이스를 설정하려면:
-
데이터베이스 사용자
gitlab
의 PostgreSQL 비밀을 보유하는 Kubernetes 시크릿을 생성합니다. 이 비밀은 두 개의 다른 물리 서버에 다른 암호를 사용하여 여러 데이터베이스를 지원하기 위해 다를 수 있습니다.이 Kubernetes 시크릿에
gitlab-postgresql-password
라는 이름을 선택합시다:kubectl create secret generic gitlab-postgresql-password \ --from-literal=main-gitlab-password=<main-database-password> \ --from-literal=ci-gitlab-password=<ci-database-password>
-
기존의 YAML 파일에 다음을 추가하여 GitLab 차트를 배포하는 동안 이를 사용하고,
host
값을 귀하의 값으로 교체합니다:global: psql: main: host: main.database.host # 외부 main 데이터베이스의 호스트를 여기에 설정 database: gitlabhq_production password: secret: gitlab-postgresql-password key: main-gitlab-password ci: host: ci.database.host # 외부 ci 데이터베이스의 호스트를 여기에 설정. main 데이터베이스와 동일할 수 있습니다. database: gitlabhq_production_ci # CI 스키마를 포함하는 데이터베이스의 차이는 `database_tasks: true`로 이어집니다. password: secret: gitlab-postgresql-password key: ci-gitlab-password postgresql: install: false
여기서:
-
postgresql.install
: 포함된 데이터베이스를 비활성화하고 외부 데이터베이스를 대신 사용하도록false
로 설정합니다. -
global.psql.main.host
: 외부main
데이터베이스의 호스트 이름을 설정합니다. 도메인 또는 IP 주소가 될 수 있습니다. -
global.psql.main.password.secret
: PostgreSQL 사용자의 비밀을 보유하는 Kubernetes 시크릿의 이름입니다. 우리의 예에서는gitlab-postgresql-password
입니다. -
global.psql.main.password.key
: 시크릿 내에서 비밀을 포함하는 키입니다. 우리의 예에서는main-gitlab-password
입니다. -
global.psql.ci.host
: 외부ci
데이터베이스의 호스트 이름을 설정합니다. 도메인 또는 IP 주소가 될 수 있습니다. 두 데이터베이스main
및ci
가 동일한 데이터베이스 서버에 있는 경우global.psql.main.host
와 동일한 값이 될 수 있습니다. -
global.psql.ci.password.secret
: PostgreSQL 사용자의 비밀을 보유하는 Kubernetes 시크릿의 이름입니다. 우리의 예에서는gitlab-postgresql-password
입니다. -
global.psql.ci.password.key
: 시크릿 내에서 비밀을 포함하는 키입니다. 우리의 예에서는ci-gitlab-password
입니다.
-
-
마지막으로,
gitlab-values.yaml
을 사용하여 GitLab 차트를 배포합니다:helm repo add gitlab https://charts.gitlab.io/ helm repo update helm upgrade --install gitlab gitlab/gitlab --timeout=900s -f gitlab-values.yaml