GitHub Enterprise Server 클러스터 노드 정보
GitHub Enterprise Server 클러스터의 각 노드는 GitHub Enterprise Server 소프트웨어를 실행하는 VM(가상 머신)입니다. 클러스터를 배포하기 전에 하드웨어 요구 사항, 필수 서비스, 디자인 권장 사항을 검토할 수 있습니다.
참고: GitHub Enterprise Server 클러스터링은 HTTPS로 구성해야 합니다.
하드웨어 요구 사항
각 노드에는 루트 볼륨과 별도의 데이터 볼륨이 있어야 합니다. 최소 권장 사항입니다. 사용자 활동 및 선택한 통합과 같은 사용량에 따라 더 많은 리소스가 필요할 수 있습니다.
서비스 | 필요한 최소 메모리 | 필요한 최소 데이터 볼륨 사용 가능한 공간 |
---|---|---|
job-server ,memcache-server ,web-server | 14 GB | 1GB |
consul-server ,mysql-server ,redis-server | 14 GB | 10 GB |
git-server ,metrics-server ,pages-server ,storage-server | 14 GB | 10 GB |
elasticsearch-server | 14 GB | 10 GB |
클러스터링에 필요한 서비스
GitHub Enterprise Server는 일련의 서비스로 구성됩니다. 클러스터에서 이러한 서비스는 여러 노드에서 실행되며, 인스턴스는 노드 간에 요청을 분산합니다. 인스턴스는 별도의 노드에 데이터의 중복 복사본을 자동으로 저장합니다. 대부분의 서비스는 동일한 서비스의 다른 인스턴스와 동일한 피어입니다. 이 배포의 예외는 하나 이상의 복제본 노드가 있는 단일 주 노드로 작동하는 mysql-server
및 redis-server
서비스입니다.
적절한 중복성을 위해 각 서비스를 작동하는 이 최소 노드를 사용하세요.
참고: 환경의 크기 조정 요구 사항은 리포지토리의 크기 및 수, 사용자 수, 전반적인 사용률을 비롯한 여러 요인에 따라 달라집니다.
예제 클러스터 구성
다음 예제에서는 필요한 서비스를 실행하는 11개의 노드를 포함하는 최소 클러스터 구성을 보여 줍니다.
계층 | 서비스 | 필요한 최소 노드 |
---|---|---|
프런트 엔드 | job-server ,memcache-server ,web-server | 2 |
Database | consul-server ,mysql-server ,redis-server | 3 |
스토리지 | git-server ,metrics-server ,pages-server ,storage-server | 3 |
Search | elasticsearch-server | 3 |
클러스터 디자인 권장 사항
클러스터링을 통해 GitHub Enterprise Server를 구성하는 서비스를 서로 독립적으로 스케일 아웃할 수 있습니다. 유연성을 통해 다양한 스케일링 성능 요구 사항이 있는 조직에 맞는 클러스터를 디자인하고 구현할 수 있습니다. 예를 들어 일부 조직에서는 대규모 또는 빈번한 페치에 더 많은 스토리지 처리량이 필요할 수 있지만 웹 서버 사용량이 상대적으로 낮을 수 있습니다. 다른 조직에서는 스토리지 리소스가 적어 성능이 좋을 수 있지만 pages-server
또는 elasticsearch-server
를 실행하는 많은 노드가 필요할 수 있습니다. 여러 가지 다양한 조합이 가능합니다. 계정 담당자와 협력하여 특정 요구 사항에 가장 적합한 클러스터 구성을 결정하세요.
- 독립 하드웨어에 중복 노드를 분산합니다. CPU, 메모리 또는 스토리지 디바이스를 공유하는 경우 성능을 줄이고 단일 실패 지점을 도입합니다. 공유 네트워킹 구성 요소는 처리량을 줄이고 가동 중단 시 연결이 끊어질 위험이 늘어날 수도 있습니다.
- 빠른 스토리지를 사용합니다. SAN(저장 영역 네트워크)은 절대 처리량이 아닌 최대 공간 사용률, 가용성 및 내결함성을 위해 최적화됩니다. GitHub Enterprise Server 클러스터링은 중복성과 가용성을 제공하며, 사용 가능한 가장 빠른 스토리지에서 최상의 성능을 발휘합니다. 로컬 SSD 스토리지를 사용하는 것이 좋습니다.