GitHub Enterprise Server 클러스터의 초기화 정보
사용자 환경에 GitHub Enterprise Server 클러스터를 배포하려면 GitHub Enterprise Server을(를) 설치하고, 클러스터 사용 라이선스를 업로드하고, 첫 번째 노드를 구성하고, 구성 파일을 사용하여 노드를 초기화해야 합니다.
참고: GitHub Enterprise Server 클러스터링은 HTTPS로 구성해야 합니다.
GitHub Enterprise Server 설치
클러스터 설정을 시작하려면 각 노드의 VM(가상 머신)에 GitHub Enterprise Server 어플라이언스 설치한 다음 IP 주소를 구성합니다.
- 각 클러스터 노드에서 GitHub Enterprise Server를 프로비저닝하고 설치합니다. 자세한 내용은 "GitHub Enterprise Server 인스턴스 설정"을(를) 참조하세요.
- 관리 셸 또는 DHCP를 사용하여 각 노드의 IP 주소만 구성합니다. 다른 설정은 구성하지 마세요.
첫 번째 노드 구성
기본 MySQL 노드로 작동하는 노드에서 GitHub Enterprise Server 라이선스를 설치합니다.
cluster.conf
에서 MySQL 기본으로 지정될 노드에 연결합니다. 자세한 내용은 "클러스터 초기화"을(를) 참조하세요.- 웹 브라우저에서
https://<ip address>:8443/setup/
으로 이동합니다. - 메시지가 표시되면 라이선스 파일을 업로드하고 관리 콘솔 암호를 설정합니다. 자세한 내용은 "GitHub Enterprise 라이선스 관리"을(를) 참조하세요.
- 관리 콘솔에서 원하는 설정을 구성하고 저장합니다.
- 인스턴스가 자동으로 다시 시작됩니다.
클러스터 초기화
클러스터를 초기화하려면 클러스터 구성 파일(cluster.conf
)이 필요합니다. 자세한 내용은 "클러스터 초기화"을(를) 참조하세요.
- 구성된 첫 번째 노드에서
ghe-cluster-config-init
를 실행합니다. 구성되지 않은 클러스터 구성 파일에 노드가 있는 경우 클러스터가 초기화됩니다. ghe-cluster-config-apply
를 실행합니다. 그러면cluster.conf
파일의 유효성이 검사되고, 각 노드 파일에 구성이 적용되고, 각 노드에서 구성된 서비스를 불러옵니다.
실행 중인 클러스터의 상태를 확인하려면 ghe-cluster-status
명령을 사용합니다.
클러스터 구성 파일 정보
클러스터 구성 파일(cluster.conf
)은 클러스터의 노드 및 해당 노드가 실행하는 서비스를 정의합니다.
자세한 내용은 "클러스터 노드 정보"을(를) 참조하세요.
이 예제 cluster.conf
는 노드가 11개인 클러스터를 정의합니다.
ghes-front-end-node-\*
라는 두 노드는 클라이언트 요청에 응답하는 서비스를 실행합니다.ghes-database-node-\*
라는 세 개의 노드는 데이터베이스 데이터의 저장, 검색 및 복제를 담당하는 서비스를 실행합니다.ghes-search-node-\*
라는 세 개의 노드는 검색 기능을 담당하는 서비스를 실행합니다.ghes-storage-node-\*
라는 세 개의 노드는 데이터의 저장, 검색 및 복제를 담당하는 서비스를 실행합니다.
각 노드에 대해 유효하고 고유한 호스트 이름 및 IPv4 주소를 선택해야 합니다. 노드가 서로 로컬로 확인 가능하도록 하기 위해 GitHub Enterprise Server는 각 노드의 호스트 이름에 대한 레코드를 모든 노드의 /etc/hosts
에 추가합니다.
- GitHub Enterprise Server의 유효한 호스트 이름에 대한 자세한 내용은 "인스턴스에 대한 호스트 이름 구성하기" 항목을 참조하세요.
- 각 IPv4 주소는 개인 네트워크의 주소여야 합니다. IETF 웹 사이트의 RFC 1918을 참조하세요.
mysql-server
및 mysql-master
를 통해 구성한 첫 번째 클러스터 노드를 MySQL 기본으로 지정합니다.
[cluster]
mysql-master = ghes-database-node-1
redis-master = ghes-database-node-1
primary-datacenter = primary
[cluster "ghes-front-end-node-1"]
hostname = ghes-front-end-node-1
ipv4 = 192.168.0.2
# ipv6 = fd12:3456:789a:1::2
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-front-end-node-2"]
hostname = ghes-front-end-node-2
ipv4 = 192.168.0.3
# ipv6 = fd12:3456:789a:1::3
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-database-node-1"]
hostname = ghes-database-node-1
ipv4 = 192.168.0.4
# ipv6 = fd12:3456:789a:1::4
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-2"]
hostname = ghes-database-node-2
ipv4 = 192.168.0.5
# ipv6 = fd12:3456:789a:1::5
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-3"]
hostname = ghes-database-node-3
ipv4 = 192.168.0.6
# ipv6 = fd12:3456:789a:1::6
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-search-node-1"]
hostname = ghes-search-node-1
ipv4 = 192.168.0.7
# ipv6 = fd12:3456:789a:1::7
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-2"]
hostname = ghes-search-node-2
ipv4 = 192.168.0.8
# ipv6 = fd12:3456:789a:1::8
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-3"]
hostname = ghes-search-node-3
ipv4 = 192.168.0.9
# ipv6 = fd12:3456:789a:1::9
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-storage-node-1"]
hostname = ghes-storage-node-1
ipv4 = 192.168.0.10
# ipv6 = fd12:3456:789a:1::10
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-2"]
hostname = ghes-storage-node-2
ipv4 = 192.168.0.11
# ipv6 = fd12:3456:789a:1::11
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-3"]
hostname = ghes-storage-node-3
ipv4 = 192.168.0.12
# ipv6 = fd12:3456:789a:1::12
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
구성된 첫 번째 노드에 /data/user/common/cluster.conf
파일을 만듭니다. 예를 들어 vim
를 사용하는 경우
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf