Skip to main content

클러스터 초기화

클러스터는 GitHub Enterprise Server 라이선스로 설정하고 SSH(관리 셸)를 사용하여 초기화해야 합니다.

누가 이 기능을 사용할 수 있나요?

GitHub 는 클러스터링에 대한 자격을 결정하며 인스턴스 라이선스에 대한 구성을 사용하도록 설정해야 합니다. 클러스터링은 신중하게 계획해야 하며 관리 오버헤드가 추가로 필요합니다. 자세한 내용은 클러스터링 정보을(를) 참조하세요.

GitHub Enterprise Server 클러스터 초기화에 관하여

사용자 환경에서 클러스터를 GitHub Enterprise Server 배포하려면 설치 GitHub Enterprise Server하고, 클러스터 사용 라이선스를 업로드하고, 첫 번째 노드를 구성하고, 구성 파일을 사용하여 노드를 초기화해야 합니다.

참고

GitHub Enterprise Server 클러스터링은 HTTPS로 구성해야 합니다.

설치 GitHub Enterprise Server

클러스터 GitHub Enterprise Server 설정을 시작하려면 각 노드의 VM(가상 머신)에 어플라이언스 설치 후 IP 주소를 구성합니다.

  1. 각 클러스터 노드에 GitHub Enterprise Server를 프로비저닝하고 설치합니다. 자세한 내용은 GitHub Enterprise Server 인스턴스 설정을(를) 참조하세요.
  2. 관리 셸 또는 DHCP를 사용하여 각 노드의 IP 주소 구성합니다. 다른 설정은 구성하지 마세요.

첫 번째 노드 구성

기본 MySQL 노드로 사용할 노드에 GitHub Enterprise Server 라이선스를 설치하세요.

  1. cluster.conf에서 MySQL 기본으로 지정될 노드에 연결합니다. 자세한 내용은 클러스터 초기화을(를) 참조하세요.
  2. 웹 브라우저에서 https://<ip address>:8443/setup/으로 이동합니다.
  3. 메시지가 표시되면 라이선스 파일을 업로드하고 관리 콘솔 암호를 설정합니다. 자세한 내용은 GitHub Enterprise용 라이선스 다운로드을(를) 참조하세요.
  4. 에서 관리 콘솔원하는 설정을 구성하고 저장합니다.
  5. 인스턴스가 자동으로 다시 시작됩니다.

클러스터 초기화

클러스터를 초기화하려면 클러스터 구성 파일(cluster.conf)이 필요합니다. 자세한 내용은 클러스터 초기화을(를) 참조하세요.

  1. 구성된 첫 번째 노드에서 ghe-cluster-config-init를 실행합니다. 구성되지 않은 클러스터 구성 파일에 노드가 있는 경우 클러스터가 초기화됩니다.
  2. 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-servermysql-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