정보 Node Eligibility Service
GitHub Enterprise Server 클러스터에서 하드웨어 또는 소프트웨어 오류로 인해 개별 노드에 다른 노드에 연결할 수 없게 될 수 있습니다. 시간이 지나면 노드의 상태를 복원하더라도 후속 데이터 동기화가 인스턴스의 성능에 부정적인 영향을 미칠 수 있습니다.
를 사용하여 Node Eligibility Service노드 가용성 감소의 영향을 사전에 완화할 수 있습니다. 이 서비스는 클러스터 노드의 상태를 모니터링하고 노드가 너무 오랫동안 오프라인 상태인 경우 경고를 보냅니다. 오프라인 상태인 노드가 클러스터에 다시 조인하지 않도록 할 수도 있습니다. 필요에 따라 부적격 노드를 오프라인으로 전환할 Node Eligibility Service 수 있습니다.
기본적으로 Node Eligibility Service가 비활성화되어 있습니다. 사용하도록 설정 Node Eligibility Service하면 인스턴스는 관리 웹 UI GitHub Enterprise Server에 배너를 표시하고, 일부 클러스터 관련 유틸리티(예 ghe-config-apply``ghe-cluster-diagnostics: 및 )에 대한 CLI 출력을 표시하여 비정상 노드를 경고합니다.
Node Eligibility Service 를 사용하면 개별 노드의 상태를 모니터링할 수 있습니다. 또한 클러스터의 전반적인 상태도 검토할 수 있습니다. 자세한 내용은 클러스터의 상태 모니터링을(를) 참조하세요.
클러스터 노드의 상태 및 자격 정보
경고를 내보내는지 또는 클러스터 Node Eligibility Service 의 구성을 자동으로 조정할지 여부를 확인하려면 각 노드의 상태를 지속적으로 모니터링합니다. 각 노드는 TTL(Time To Live) 기간과 비교하여 타임스탬프가 있는 상태를 Node Eligibility Service 정기적으로 보고합니다.
각 노드에는 성능 상태와 자격 상태가 있습니다.
- 상태는 클러스터 내 노드의 접근성을 의미하며 세 가지 가능한 상태(
healthy,warning또는critical)가 있습니다. - 자격은 클러스터에서 노드가 작동할 수 있는 능력을 의미하며 두 가지 가능한 상태(
eligible또는ineligible)가 있습니다.
Node Eligibility Service 는 두 상태에 warn 대해 구성 가능한 TTL 설정을 제공합니다 fail.
warn: 노드가 짧은 기간 동안 오프라인 상태였습니다. 이는 노드에 문제가 있으며 관리자가 조사할 필요가 있음을 나타낼 수 있습니다. 기본 설정은 15분입니다.fail: 노드가 오랫동안 오프라인 상태였으며, 클러스터에 다시 추가하면 재동기화로 인해 성능 문제가 발생할 수 있습니다. 기본 설정은 60분입니다.
각 노드 Node Eligibility Service 에 대해 다음과 같은 방법으로 클러스터에 참여할 수 있는 상태 및 자격을 결정합니다.
- 노드가 정상으로 관찰된 경우 성능 상태는
healthy이며 자격 상태는eligible입니다. - 노드가
warnTTL보다 긴 시간 동안 정상 상태로 관찰되지 않은 경우 성능 상태는warning이며 자격 상태는eligible입니다. - 노드가
failTTL보다 긴 시간 동안 정상 상태로 관찰되지 않은 경우 성능 상태는critical이며 자격 상태는ineligible입니다.
클러스터에 Node Eligibility Service 대해 사용
기본적으로 Node Eligibility Service가 비활성화되어 있습니다. 사용할 값을 app.nes.enabled 설정하여 사용하도록 설정할 Node Eligibility Service 수 있습니다ghe-config.
-
GitHub Enterprise Server 인스턴스에 연결하려면 클러스터의 아무 노드에나 SSH로 접속하세요. 워크스테이션에서 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
현재 사용하도록 설정되어 있는지 확인 Node Eligibility Service 하려면 다음 명령을 실행합니다.
Shell ghe-config app.nes.enabled
ghe-config app.nes.enabled -
사용하도록 설정 Node Eligibility Service하려면 다음 명령을 실행합니다.
Shell ghe-config app.nes.enabled true
ghe-config app.nes.enabled true -
구성을 적용하려면 다음 명령을 실행합니다.
참고
구성을 실행하는 동안 GitHub Enterprise Server 인스턴스의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.
Shell ghe-config-apply
ghe-config-apply -
구성 실행이 완료될 때까지 기다립니다.
-
실행 중인지 Node Eligibility Service 확인하려면 노드에서 다음 명령을 실행합니다.
Shell nomad status nes
nomad status nes
에 대한 TTL 설정 구성 Node Eligibility Service
알릴 방법을 Node Eligibility Service 확인하려면 TTL 설정 fail 및 warn 상태를 구성할 수 있습니다.
fail 상태의 TTL은 warn 상태의 TTL보다 높아야 합니다.
-
GitHub Enterprise Server 인스턴스에 연결하려면 클러스터의 아무 노드에나 SSH로 접속하세요. 워크스테이션에서 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
현재 TTL 설정을 확인하려면 다음 명령을 실행합니다.
Shell nes get-node-ttl all
nes get-node-ttl all -
fail상태의 TTL을 설정하려면 다음 명령을 실행합니다. MINUTES를 실패에 사용할 시간(분)으로 바꿉니다.Shell nes set-node-ttl fail MINUTES
nes set-node-ttl fail MINUTES -
warn상태의 TTL을 설정하려면 다음 명령을 실행합니다. MINUTES를 경고에 사용할 시간(분)으로 바꿉니다.Shell nes set-node-ttl warn MINUTES
nes set-node-ttl warn MINUTES
노드를 오프라인으로 전환할 수 있는지 여부 Node Eligibility Service 관리
기본적으로 Node Eligibility Service 클러스터 노드의 상태에 대한 변경 내용을 알리는 경고를 제공합니다. 필요에 따라, 서비스에서 비정상 노드가 클러스터에 다시 조인할 수 없다고 판단될 경우 서비스가 노드를 오프라인으로 전환하도록 허용할 수 있습니다.
노드가 오프라인 상태가 되면 인스턴스는 노드에서 작업 할당을 제거합니다. 노드가 데이터 스토리지 서비스를 실행하는 경우 클러스터에 다시 가입할 노드의 부적격성을 반영하도록 구성을 업데이트합니다 Node Eligibility Service .
노드와 해당 서비스를 오프라인으로 전환할 수 있는지 여부를 Node Eligibility Service 관리하려면 노드에 대한 상태를 구성할 adminaction 수 있습니다. 노드가 상태에 Node Eligibility Service 있는 경우 노드를 approved 오프라인으로 전환할 수 있습니다. 노드가 상태에 Node Eligibility Service 있는 경우 노드를 none 오프라인으로 전환할 수 없습니다.
-
GitHub Enterprise Server 인스턴스에 연결하려면 클러스터의 아무 노드에나 SSH로 접속하세요. 워크스테이션에서 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
노드를 오프라인으로 전환할 수 있는지 여부를 Node Eligibility Service 구성하려면 다음 명령 중 하나를 실행합니다.
-
노드가 오프라인 상태가 될 경우 서비스가 자동으로 관리 작업을 수행하도록 하려면 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다.
Shell nes set-node-adminaction approved HOSTNAME
nes set-node-adminaction approved HOSTNAME -
노드를 오프라인으로 전환할 수 있는 기능을 취소 Node Eligibility Service하려면 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다.
Shell nes set-node-adminaction none HOSTNAME
nes set-node-adminaction none HOSTNAME
-
노드 상태의 개요 보기
다음 방법 중 하나를 사용하여 Node Eligibility Service노드의 상태에 대한 개요를 확인합니다.
- 클러스터의 모든 노드에 SSH로 액세스한 다음
nes get-cluster-health를 실행합니다. - '의 "상태" 페이지로 관리 콘솔이동합니다. 자세한 내용은 관리 콘솔에 액세스을(를) 참조하세요.
부적격 노드가 클러스터에 다시 조인할 수 있도록 설정
Node Eligibility Service 노드가 상태에 대한 fail TTL을 초과했음을 감지하고 서비스가 노드를 표시ineligible한 후에는 서비스가 더 이상 노드의 상태를 업데이트하지 않습니다. 노드가 클러스터에 다시 조인할 수 있도록 설정하려면 노드에서 ineligible 상태를 제거하면 됩니다.
-
GitHub Enterprise Server 인스턴스에 연결하려면 클러스터의 아무 노드에나 SSH로 접속하세요. 워크스테이션에서 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
노드의 현재
adminaction상태를 검사하려면 다음 명령을 실행합니다. HOSTNAME을 부적격 노드의 호스트 이름으로 바꿉니다.Shell nes get-node-adminaction HOSTNAME
nes get-node-adminaction HOSTNAME -
adminaction상태가 현재approved로 설정되어 있는 경우 다음 명령을 실행하여 상태를none로 변경합니다. HOSTNAME을 부적격 노드의 호스트 이름으로 바꿉니다.Shell nes set-node-adminaction none HOSTNAME
nes set-node-adminaction none HOSTNAME -
노드가 정상 상태인지 확인하려면 다음 명령을 실행하고 노드의 상태가
ready인지 확인합니다.Shell nomad node status
nomad node status-
노드의 상태가
ineligible인 경우 SSH를 통해 노드에 연결하고 다음 명령을 실행하여 노드를 적격 상태로 만듭니다.Shell nomad node eligibility -enable -self
nomad node eligibility -enable -self
-
-
노드의 자격을 Node Eligibility Service업데이트하려면 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다.
Shell nes set-node-eligibility eligible HOSTNAME
nes set-node-eligibility eligible HOSTNAME -
30초 동안 기다렸다가 클러스터의 상태를 다음 명령을 실행하여 대상 노드가 적격 상태인지 확인합니다.
Shell nes get-cluster-health
nes get-cluster-health
에 대한 로그 보기 Node Eligibility Service
클러스터의 Node Eligibility Service 모든 노드 또는 서비스를 실행하는 노드에서 로그를 볼 수 있습니다. 지원 번들을 생성하면 로그가 포함됩니다. 자세한 내용은 GitHub 지원에 데이터 제공을(를) 참조하세요.
-
GitHub Enterprise Server 인스턴스에 연결하려면 클러스터의 아무 노드에나 SSH로 접속하세요. 워크스테이션에서 다음 명령을 실행합니다. HOSTNAME을 노드의 호스트 이름으로 바꿉니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
클러스터의 노드에서 로그를 Node Eligibility Service 보려면 다음 명령을 실행합니다.
Shell nomad alloc logs -job nes
nomad alloc logs -job nes -
또는 서비스를 실행하는 노드에서 로그 Node Eligibility Service 를 볼 수 있습니다. 서비스는 systemd 저널에 로그를 씁니다.
-
실행되는 Node Eligibility Service노드를 확인하려면 다음 명령을 실행합니다.
Shell nomad job status "nes" | grep running | grep "${nomad_node_id}" | awk 'NR==2{ print $1 }' | xargs nomad alloc status | grep "Node Name"nomad job status "nes" | grep running | grep "${nomad_node_id}" | awk 'NR==2{ print $1 }' | xargs nomad alloc status | grep "Node Name" -
노드에서 로그를 보려면 SSH를 통해 노드에 연결한 후 다음 명령을 실행합니다.
Shell journalctl -t nes
journalctl -t nes
-