독립 실행형 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_PASSWORDDB_PASSWORD의 인코딩된 값입니다. 이는 DB_USERNAMEDB_PASSWORD를 실제 값으로 바꿔 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']
# 신뢰할 수 있는 인증(비밀번호 없이)을 위한 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