독립형 Gitaly 설정

여기서의 지침은 Ubuntu의 Linux 패키지를 이용합니다. 이 패키지는 차트의 서비스와 호환될 것으로 보장된 서비스 버전을 제공합니다.

Linux 패키지로 VM 생성

원하시는 제공업체나 로컬로 VM을 생성하세요. 이는 VirtualBox, KVM, Bhyve에서 테스트되었습니다. 인스턴스가 클러스터에서 접근 가능한지 확인하세요.

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

Linux 패키지의 설치 지침을 따르세요. Linux 패키지 설치 시 EXTERNAL_URL= 값을 제공하지 않도록 합니다. 다음 단계에서 매우 구체적인 구성을 제공할 예정이므로 자동 구성이 발생하지 않도록 합니다.

Linux 패키지 설치 구성

최소한의 gitlab.rb 파일을 생성하여 /etc/gitlab/gitlab.rb에 배치하세요. 이 노드에서 사용 중인 내용에 대해 매우 명확하게 하기 위해 다음 내용을 사용하세요. 독자적으로 Gitaly 서버에서 실행 문서의 설명서에 따른 내용입니다.

참고: 아래 값은 교체되어야 합니다.

# Gitaly 서버에서 불필요한 서비스 실행 방지
postgresql['enable'] = false
redis['enable'] = false
nginx['enable'] = false
puma['enable'] = false
sidekiq['enable'] = false
gitlab_workhorse['enable'] = false
grafana['enable'] = false
gitlab_exporter['enable'] = false
gitlab_kas['enable'] = false

# 별도의 모니터링 노드를 실행하는 경우, 다음 서비스를 비활성화할 수 있습니다
prometheus['enable'] = false
alertmanager['enable'] = false

# 별도의 모니터링 노드를 실행하지 않는 경우,
# Prometheus 액세스를 사용하고 이러한 추가 서비스를 비활성화할 수 있습니다
# 이렇게 하면 Prometheus가 모든 인터페이스에서 수신 대기하게 됩니다. 이 주소/포트로의 액세스를 제한하려면 방화벽을 사용해야 합니다.
# prometheus['listen_address'] = '0.0.0.0:9090'
# prometheus['monitor_kubernetes'] = false

# 모니터링 서비스를 실행하지 않으려면 다음을 주석 처리하십시오 (권장하지 않음)
# node_exporter['enable'] = false

# 'gitlab-ctl reconfigure' 중에 데이터베이스 연결 방지
gitlab_rails['auto_migrate'] = false

# gitlab-shell API 콜백 URL 구성. 이렇게 하지 않으면 `git push`가 실패합니다. 이것은 'front door' GitLab URL 또는 내부 로드밸런서가 될 수 있습니다.
gitlab_rails['internal_api_url'] = 'GITLAB_URL'
gitlab_shell['secret_token'] = 'SHELL_TOKEN'

# Gitaly가 모든 네트워크 인터페이스에서 연결을 수락하도록 만듭니다. 이 주소/포트로의 액세스를 제한하려면 방화벽을 사용해야 합니다.
# TLS 연결만 지원하려면 다음 줄을 주석 처리하십시오
gitaly['listen_addr'] = "0.0.0.0:8075"

# 권한 토큰으로만 인가된 서버가 Gitaly 서버와 통신하도록 보장합니다
gitaly['auth_token'] = 'AUTH_TOKEN'

git_data_dirs({
 'default' => {
   'path' => '/var/opt/gitlab/git-data'
 },
 'storage1' => {
   'path' => '/mnt/gitlab/git-data'
 },
})

# Gitaly에 TLS를 사용하려면 다음을 추가해야 합니다
gitaly['tls_listen_addr'] = "0.0.0.0:8076"
gitaly['certificate_path'] = "cert.pem의 경로"
gitaly['key_path'] = "key.pem의 경로"

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

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