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

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

Linux 패키지를 사용한 VM 생성

선호하는 프로바이더나 로컬에 VM을 생성하세요. 이는 VirtualBox, KVM 및 Bhyve에서 테스트되었습니다. 인스턴스가 클러스터에서 접근 가능한지 확인하세요.

생성한 VM에 Ubuntu Server를 설치하세요. openssh-server가 설치되어 있는지와 모든 패키지가 최신 상태인지 확인하세요. 네트워킹 및 호스트 이름을 구성하세요. 호스트 이름/IP를 메모하고, Kubernetes 클러스터에서 해결되고 접근 가능한지 확인하세요. 트래픽을 허용하기 위해 방화벽 정책을 설정하세요.

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

Linux 패키지 설치 구성

/etc/gitlab/gitlab.rb에 배치될 최소한의 gitlab.rb 파일을 생성하세요. 이 노드에서 활성화된 내용에 대해 매우 명시적으로 사용해야 합니다. 아래 내용을 사용하세요.

참고: 이 예제는 스케일링을 위한 PostgreSQL을 제공하는 것이 아닙니다.

참고: 아래 값들은 대체되어야 합니다

  • DB_USERNAME의 기본 사용자 이름은 gitlab입니다.
  • DB_PASSSWORD는 인코딩되지 않은 값입니다.
  • DB_ENCODED_PASSWORDDB_PASSSWORD의 인코딩된 값입니다. 다음을 사용하여 생성할 수 있습니다: echo -n 'DB_PASSSWORDDB_USERNAME' | md5sum - | cut -d' ' -f1
  • AUTH_CIDR_ADDRESS는 MD5 인증을 위한 CIDR을 구성합니다. 클러스터 또는 게이트웨이의 가능한 하위넷 중 가장 작은 값이어야 합니다. minikube의 경우, 이 값은 192.168.100.0/12입니다.
# 주소를 변경하여 PG가 모든 사용 가능 주소에서 수신하지 않도록 설정합니다
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']
# 신뢰되는 인증(passwordless)을 위한 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_kas['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