GitHub Enterprise Server 클러스터 노드 대체 정보
GitHub Enterprise Server 클러스터의 기능 노드를 대체하거나 예기치 않게 실패한 노드를 대체할 수 있습니다.
노드를 대체한 후 GitHub Enterprise Server 인스턴스은(는) 작업을 새 노드에 자동으로 분산하지 않습니다. 인스턴스가 노드 간에 작업을 밸런싱하도록 강제할 수 있습니다. 자세한 내용은 "클러스터 워크로드 리밸런싱"을 참조하세요.
경고: 충돌을 방지하기 위해, 이전에 클러스터의 노드에 할당된 호스트 이름을 다시 사용하지 마세요.
기능 노드 바꾸기
클러스터의 기존 기능 노드를 대체할 수 있습니다. 예를 들어 VM(가상 머신)에 추가 CPU, 메모리 또는 스토리지 리소스를 제공할 수 있습니다.
기능 노드를 대체하려면 새 VM에 GitHub Enterprise Server 어플라이언스를 설치하고, IP 주소를 구성하고, 클러스터 구성 파일에 새 노드를 추가하고, 클러스터를 초기화하고 구성을 적용한 다음, 대체된 노드를 오프라인으로 전환합니다.
-
대체 노드에 고유한 호스트 이름을 사용하여 GitHub Enterprise Server를 프로비저닝하고 설치합니다.
-
관리 셸 또는 DHCP를 사용하여 대체 노드의 IP 주소만 구성합니다. 다른 설정은 구성하지 마세요.
-
모든 노드에서 새로 프로비저닝된 대체 노드를 추가하려면
cluster.conf
파일을 수정하여 실패한 노드를 제거하고 대체 노드를 추가합니다. 예를 들어 이 수정된cluster.conf
파일은ghe-data-node-3
을 새로 프로비저닝된 노드인ghe-replacement-data-node-3
으로 바꿉니다.[cluster "ghe-replacement-data-node-3"] hostname = ghe-replacement-data-node-3 ipv4 = 192.168.0.7 # ipv6 = fd12:3456:789a:1::7 git-server = true pages-server = true mysql-server = true elasticsearch-server = true redis-server = true memcache-server = true metrics-server = true storage-server = true
-
수정된
cluster.conf
를 사용하여 노드의 관리 셸에서ghe-cluster-config-init
를 실행합니다. 그러면 클러스터에서 새로 추가된 노드가 초기화됩니다. -
동일한 노드에서
ghe-cluster-config-apply
를 실행합니다. 이렇게 하면 구성 파일의 유효성이 검사되고, 클러스터의 각 노드에 복사되고, 수정된cluster.conf
파일에 따라 각 노드가 구성됩니다. -
git-server
,pages-server
, 또는storage-server
등의 데이터 서비스를 제공하는 노드를 오프라인으로 전환하는 경우 해당 노드를 이동하세요. 자세한 내용은 "데이터 서비스를 실행하는 클러스터 노드 이동"을 참조하세요. -
모든 노드에서 실패한 노드를 오프라인으로 표시하려면 관련 노드 섹션에서 클러스터 구성 파일(
cluster.conf
)을 수정하여offline = true
텍스트를 포함합니다.예를 들어 이 수정된
cluster.conf
는ghe-data-node-3
노드를 오프라인으로 표시합니다.[cluster "ghe-data-node-3"] hostname = ghe-data-node-3 offline = true ipv4 = 192.168.0.6 # ipv6 = fd12:3456:789a:1::6
-
수정된
cluster.conf
를 사용하여 노드의 관리 셸에서ghe-cluster-config-apply
를 실행합니다. 이렇게 하면 구성 파일의 유효성이 검사되고, 클러스터의 각 노드에 복사되며, 노드가 오프라인으로 표시됩니다. -
기본 MySQL 또는 Redis 노드를 교체하는 경우
cluster.conf
에서mysql-master
또는redis-master
값을 교체 노드 이름으로 수정합니다.예를 들어 이 수정된
cluster.conf
파일은 새로 프로비저닝된 클러스터 노드ghe-replacement-data-node-1
을 기본 MySQL 및 Redis 노드로 지정합니다.mysql-master = ghe-replacement-data-node-1 redis-master = ghe-replacement-data-node-1
응급 상황에서 노드 바꾸기
클러스터에서 실패한 노드를 대체할 수 있습니다. 예를 들어 소프트웨어 또는 하드웨어 문제가 노드의 가용성에 영향을 줄 수 있습니다.
긴급 상황에서 노드를 대체하려면 새 VM에 GitHub Enterprise Server 어플라이언스 설치하고, IP 주소를 구성하고, 실패한 노드를 오프라인으로 전환하고, 구성을 적용하고, 클러스터 구성 파일에 새 노드를 추가하고, 클러스터를 초기화하고 구성을 적용하고, 필요에 따라 실패한 노드를 제거합니다.
-
대체 노드에 고유한 호스트 이름을 사용하여 GitHub Enterprise Server를 프로비저닝하고 설치합니다.
-
관리 셸 또는 DHCP를 사용하여 대체 노드의 IP 주소만 구성합니다. 다른 설정은 구성하지 마세요.
-
모든 노드에서 실패한 노드를 오프라인으로 표시하려면 관련 노드 섹션에서 클러스터 구성 파일(
cluster.conf
)을 수정하여offline = true
텍스트를 포함합니다.예를 들어 이 수정된
cluster.conf
는ghe-data-node-3
노드를 오프라인으로 표시합니다.[cluster "ghe-data-node-3"] hostname = ghe-data-node-3 offline = true ipv4 = 192.168.0.6 # ipv6 = fd12:3456:789a:1::6
-
수정된
cluster.conf
를 사용하여 노드의 관리 셸에서ghe-cluster-config-apply
를 실행합니다. 이렇게 하면 구성 파일의 유효성이 검사되고, 클러스터의 각 노드에 복사되며, 노드가 오프라인으로 표시됩니다. -
모든 노드에서 새로 프로비저닝된 대체 노드를 추가하려면
cluster.conf
파일을 수정하여 실패한 노드를 제거하고 대체 노드를 추가합니다. 예를 들어 이 수정된cluster.conf
파일은ghe-data-node-3
을 새로 프로비저닝된 노드인ghe-replacement-data-node-3
으로 바꿉니다.[cluster "ghe-replacement-data-node-3"] hostname = ghe-replacement-data-node-3 ipv4 = 192.168.0.7 # ipv6 = fd12:3456:789a:1::7 git-server = true pages-server = true mysql-server = true elasticsearch-server = true redis-server = true memcache-server = true metrics-server = true storage-server = true
-
기본 MySQL 또는 Redis 노드를 교체하는 경우
cluster.conf
에서mysql-master
또는redis-master
값을 교체 노드 이름으로 수정합니다.예를 들어 이 수정된
cluster.conf
파일은 새로 프로비저닝된 클러스터 노드ghe-replacement-data-node-1
을 기본 MySQL 및 Redis 노드로 지정합니다.mysql-master = ghe-replacement-data-node-1 redis-master = ghe-replacement-data-node-1
-
수정된
cluster.conf
를 사용하여 노드의 관리 셸에서ghe-cluster-config-init
를 실행합니다. 그러면 클러스터에서 새로 추가된 노드가 초기화됩니다. -
동일한 노드에서
ghe-cluster-config-apply
를 실행합니다. 이렇게 하면 구성 파일의 유효성이 검사되고, 클러스터의 각 노드에 복사되고, 수정된cluster.conf
파일에 따라 각 노드가 구성됩니다. -
git-server
,pages-server
, 또는storage-server
등의 데이터 서비스를 제공하는 노드를 오프라인으로 전환하는 경우 해당 노드를 이동하세요. 자세한 내용은 "데이터 서비스를 실행하는 클러스터 노드 이동"을 참조하세요.