독립형 Gitaly 설정
여기의 지침은 Ubuntu용 Linux 패키지를 사용합니다.
이 패키지는 서비스의 버전이 차트의 서비스와 호환된다는 것을 보장합니다.
Linux 패키지를 사용하여 VM 생성
선택한 공급자 또는 로컬에서 VM을 생성합니다. 이 테스트는 VirtualBox, KVM 및 Bhyve에서 수행되었습니다.
클러스터에서 인스턴스에 접근할 수 있는지 확인하십시오.
생성한 VM에 Ubuntu Server를 설치합니다. openssh-server
가 설치되어 있고 모든 패키지가 최신인지 확인하십시오.
네트워킹 및 호스트 이름을 구성하십시오. 호스트 이름/IP를 기록해 두고, Kubernetes 클러스터에서 모두 확인 가능하고 접근 가능해야 합니다.
방화벽 정책이 트래픽을 허용할 수 있도록 설정되어 있는지 확인하십시오.
Linux 패키지 설치 지침을 따르십시오. Linux 패키지 설치를 수행할 때,
EXTERNAL_URL=
값을 제공하지 마십시오. 자동 구성이 발생하지 않도록 하며, 다음 단계에서 매우 구체적인 구성을 제공할 것입니다.
Linux 패키지 설치 구성
/etc/gitlab/gitlab.rb
에 배치될 최소한의 gitlab.rb
파일을 생성합니다.
다음 내용을 기반으로 이 노드에서 무엇이 활성화되었는지 매우 명확하게 지정하십시오.
문서에서 다루고 있는 Gitaly를 단독 서버에서 실행하기와 관련하여입니다.
참고: 아래 값들은 교체해야 합니다
-
AUTH_TOKEN
은gitaly-secret
비밀 값을 대체해야 합니다. -
GITLAB_URL
은 GitLab 인스턴스의 URL로 교체해야 합니다. -
SHELL_TOKEN
은gitlab-shell-secret
비밀 값을 대체해야 합니다.
# Gitaly 서버에서 불필요한 서비스 실행 방지
postgresql['enable'] = false
redis['enable'] = false
nginx['enable'] = false
puma['enable'] = false
sidekiq['enable'] = false
gitlab_workhorse['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`가 실패합니다.
# 이것은 '프론트 도어'인 GitLab URL 또는 내부 로드 밸런서가 될 수 있습니다.
gitlab_rails['internal_api_url'] = 'GITLAB_URL'
gitlab_shell['secret_token'] = 'SHELL_TOKEN'
gitaly['configuration'] = {
# Gitaly에서 모든 네트워크 인터페이스에서 연결을 수용하도록 합니다. 이 주소/포트에 대한 접근을 제한하려면 방화벽을 사용해야 합니다.
# TLS 연결만 지원하려는 경우 다음 줄의 주석을 해제하십시오.
listen_addr: '0.0.0.0:8075',
# 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'] = "path/to/cert.pem"
gitaly['key_path'] = "path/to/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