독립형 PostgreSQL 데이터베이스 설정

우리는 Ubuntu용 Linux 패키지를 사용할 것입니다. 이 패키지는 차트의 서비스와 호환되는 것으로 보장되는 서비스 버전을 제공합니다.

Linux 패키지로 VM 설정

원하시는 제공업체나 로컬에 VM을 생성하세요. 이 작업은 VirtualBox, KVM, 그리고 Bhyve에서 테스트되었습니다. 클러스터에서 해당 인스턴스에 연결할 수 있는지 확인하세요.

생성한 VM에 Ubuntu Server를 설치하세요. openssh-server가 설치되어 있는지, 그리고 모든 패키지가 최신 상태인지 확인하세요. 네트워크 설정과 호스트명을 구성하세요. 호스트명/IP를 메모하고, Kubernetes 클러스터에서 해결되고 도달 가능한지 확인하세요. 트래픽을 허용하는 방화벽 정책이 적용되었는지 확인하세요.

Linux 패키지 설치 지침에 따르세요. 패키지를 설치할 때 EXTERNAL_URL= 값을 제공하지 마세요. 다음 단계에서 매우 구체적인 구성을 제공할 것이기 때문에 자동 구성이 발생하지 않도록 합니다.

Linux 패키지 설치 구성

/etc/gitlab/gitlab.rb에 위치할 최소한의 gitlab.rb 파일을 작성하세요. 이 노드에서 사용할 설정에 대해 매우 명확하게 작성하고 있으니 아래 내용을 참고하세요.

참고: 이 예시는 스케일링을 위한 PostgreSQL을 제공하지 않습니다.

노트: 아래 값은 대체되어야 합니다.

  • DB_USERNAME 기본 사용자 이름은 gitlab
  • DB_PASSSWORD 인코딩되지 않은 값
  • DB_ENCODED_PASSWORD DB_PASSWORD를 실제 값으로 대체하여 생성 가능합니다. (예시: echo -n 'DB_PASSSWORDDB_USERNAME' | md5sum - | cut -d' ' -f1)
  • AUTH_CIDR_ADDRESS MD5 인증을 위한 CIDR을 구성하세요. 클러스터 또는 게이트웨이의 가능한 최소 서브넷으로 설정해야 합니다. minikube의 경우 이 값은 192.168.100.0/12입니다.
# 아래 주소를 사용하지 않으려면 아래 주소를 변경하세요
postgresql['listen_address'] = '0.0.0.0'
# 사용 가능한 RAM의 약 1/4로 설정합니다.
postgresql['shared_buffers'] = "512MB"
# 이 비밀번호는 다음과 같습니다: `echo -n '${password}${username}' | md5sum - | cut -d' ' -f1`
# 기본 사용자 이름은 `gitlab`입니다
postgresql['sql_user_password'] = "DB_ENCODED_PASSWORD"
# MD5 인증을 위한 CIDR을 구성하세요
postgresql['md5_auth_cidr_addresses'] = ['AUTH_CIDR_ADDRESSES']
# 신뢰된 인증 (비밀번호 없음)을 위한 CIDR을 구성하세요
postgresql['trust_auth_cidr_addresses'] = ['127.0.0.1/24']

## gitlab_rails 구성
gitlab_rails['auto_migrate'] = false
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "DB_PASSSWORD"


## 다른 항목 비활성화
sidekiq['enable'] = false
puma['enable'] = false
registry['enable'] = false
gitaly['enable'] = false
gitlab_workhorse['enable'] = false
nginx['enable'] = false
prometheus_monitoring['enable'] = false
redis['enable'] = false

gitlab.rb를 만든 후, gitlab-ctl reconfigure로 패키지를 다시 구성합니다. 작업이 완료되면 gitlab-ctl status로 실행 중인 프로세스를 확인하세요. 출력은 다음과 같아야 합니다:

# gitlab-ctl status
run: logrotate: (pid 4856) 1859s; run: log: (pid 31262) 77460s
run: postgresql: (pid 30562) 77637s; run: log: (pid 30561) 77637s