GitLab 차트를 외부 데이터베이스로 구성하기

프로덕션 준비가 된 GitLab 차트 배포를 위해 외부 데이터베이스를 사용하세요.

사전 요구사항:

  • PostgreSQL 14 이상이 배포되어 있어야 합니다. 없으신 경우, AWS RDS PostgreSQL과 같은 클라우드 제공 솔루션이나 GCP Cloud SQL을 고려하세요. 자가 관리 솔루션의 경우 Linux 패키지를 고려하세요.

  • 기본적으로 gitlabhq_production이라는 빈 데이터베이스가 필요합니다.

  • 전체 데이터베이스 접근 권한이 있는 사용자. 자세한 내용은 외부 데이터베이스 문서를 참조하세요.

  • 데이터베이스 사용자의 비밀번호가 포함된 Kubernetes Secret이 필요합니다.

  • pg_trgmbtree_gist 확장. GitLab에 슈퍼유저 플래그가 있는 계정을 제공하지 않는 경우, 데이터베이스 설치를 진행하기 전에 이 확장이 로드되어야 합니다.

네트워킹 사전 요구사항:

  • 데이터베이스가 클러스터에서 접근 가능해야 합니다. 방화벽 정책이 트래픽을 허용하는지 확인하세요.

  • PostgreSQL을 로드 밸런싱 클러스터로 사용하고 Kubernetes DNS를 서비스 검색에 사용할 계획이라면, bitnami/postgresql 차트를 설치할 때 --set slave.service.clusterIP=None을 사용하세요. 이 설정은 PostgreSQL 보조 서비스를 헤드리스 서비스로 구성하여 각 보조 인스턴스에 대한 DNS A 레코드가 생성될 수 있게 합니다.

    서비스 검색을 위해 Kubernetes DNS를 사용하는 방법에 대한 예시는 examples/database/values-loadbalancing-discover.yaml에서 확인하세요.

GitLab 차트를 외부 데이터베이스로 구성하려면:

  1. 다음 매개변수를 설정하세요:

    • postgresql.install: 임베디드 데이터베이스를 비활성화하려면 false로 설정하세요.
    • global.psql.host: 외부 데이터베이스의 호스트 이름을 설정하세요. 도메인 또는 IP 주소가 될 수 있습니다.
    • global.psql.password.secret: gitlab 사용자의 데이터베이스 비밀번호가 포함된 시크릿의 이름을 설정하세요.
    • global.psql.password.key: 시크릿 내에서 비밀번호가 포함된 키를 설정하세요.
  2. 선택 사항. 기본값을 사용하지 않는 경우 다음 항목을 추가로 사용자 정의할 수 있습니다:

    • global.psql.port: 데이터베이스가 사용 가능한 포트. 기본값은 5432입니다.
    • global.psql.database: 데이터베이스의 이름입니다.
    • global.psql.username: 데이터베이스에 접근할 수 있는 사용자입니다.
  3. 선택 사항. 데이터베이스에 대한 상호 TLS 연결을 사용하는 경우 다음을 설정하세요:

    • global.psql.ssl.secret: 클라이언트 인증서, 키 및 인증 기관이 포함된 시크릿입니다.
    • global.psql.ssl.serverCA: 시크릿 내에서 인증 기관(CA)을 참조하는 키입니다.
    • global.psql.ssl.clientCertificate: 시크릿 내에서 클라이언트 인증서를 참조하는 키입니다.
    • global.psql.ssl.clientKey: 시크릿 내에서 클라이언트 키입니다.
  4. GitLab 차트를 배포할 때 --set 플래그를 사용하여 값을 추가하세요. 예:

    helm install gitlab gitlab/gitlab
      --set postgresql.install=false
      --set global.psql.host=psql.example
      --set global.psql.password.secret=gitlab-postgresql-password
      --set global.psql.password.key=postgres-password