Skip to main content

Эта версия GitHub Enterprise Server будет прекращена 2026-08-25. Снятые релизы не поддерживаются. Исправления выпускаться не будут даже при критических проблемах безопасности. Для лучшей производительности, повышения безопасности и новых функций GitHub Enterprise Server см. Обзор процесса обновления. Для помощи с обновлением обращайтесь в GitHub Enterprise Support.

Мониторинг работоспособности узлов кластера с помощью службы "Соответствие узлам"

Вы можете отслеживать, когда узлы в GitHub Enterprise Server кластере были достаточно долго в автономном режиме, чтобы вызвать проблемы с помощью Node Eligibility Service.

Кто может использовать эту функцию?

People with administrative SSH access to a GitHub Enterprise Server instance can monitor cluster nodes.

GitHub определяет право на кластеризацию и должен включать конфигурацию лицензии вашего экземпляра. Кластеризация требует тщательного планирования и дополнительных административных накладных расходов. Дополнительные сведения см. в разделе Сведения о кластеризации.

Около Node Eligibility Service

В кластере GitHub Enterprise Server отдельный узел может стать недоступным другими узлами из-за сбоя оборудования или программного обеспечения. Через некоторое время даже при восстановлении работоспособности узла последующие синхронизации данных могут негативно повлиять на производительность вашего экземпляра.

Вы можете заранее снизить влияние снижения доступности узлов с помощью Node Eligibility Service. Эта служба отслеживает состояние узлов кластера и выдает предупреждение, если узел находится в автономном режиме слишком долго. Вы также можете запретить автономному узлу повторно присоединиться к кластеру. При необходимости можно разрешить Node Eligibility Service использовать неучитаемые узлы в автономном режиме.

По умолчанию Node Eligibility Service он отключён. Если вы включите Node Eligibility Service, экземпляр оповещает вас о неработоспособных узлах, отображая баннер в административном веб-пользовательском веб-интерфейсе GitHub Enterprise Server, а также в выходных данных CLI для некоторых служебных программ, связанных с кластером, таких как ghe-config-apply и ghe-cluster-diagnostics.

Node Eligibility Service позволяет отслеживать работоспособность отдельных узлов. Вы также можете отслеживать общую работоспособность кластера. Дополнительные сведения см. в разделе Мониторинг работоспособности кластера.

Сведения о работоспособности и правах узлов кластера

Чтобы определить, следует ли выдавать предупреждение или автоматически настраивать конфигурацию кластера, Node Eligibility Service постоянно отслеживает работоспособность каждого узла. Каждый узел регулярно сообщает о состоянии работоспособности метки времени, Node Eligibility Service которое сравнивается с длительностью жизни (TTL).

Каждый узел имеет состояние работоспособности и состояние соответствия.

  • Работоспособность относится к специальным возможностям узла в кластере и имеет три возможных состояния: healthy, warningили critical.
  • Доступность относится к способности узла работать в кластере и имеет два возможных состояния: eligible или ineligible.

Node Eligibility Service предоставляет настраиваемый параметр TTL для двух состояний warn и fail.

  • warn: узел находится в автономном режиме в течение короткого периода времени. Это может указывать на то, что не так с узлом, и что администраторы должны исследовать. Значение по умолчанию — 15 минут.
  • fail: узел находится в автономном режиме в течение длительного периода времени, а повторное введение в кластер может привести к проблемам с производительностью из-за повторной синхронизации. Значение по умолчанию — 60 минут.

Для каждого узла Node Eligibility Service определяет работоспособность и право на участие в кластере следующим образом.

  • Если узел был замечен как работоспособный, состояние работоспособности — healthy это состояние работоспособности и состояние eligibleсоответствия.
  • Если узел не был замечен работоспособным в течение длительного warn времени, чем срок жизни, состояние работоспособности и warning состояние соответствия.eligible
  • Если узел не был замечен работоспособным в течение длительного fail времени, чем срок жизни, состояние работоспособности и critical его состояние соответствия.ineligible

Включение Node Eligibility Service для кластера

По умолчанию Node Eligibility Service он отключён. Вы можете включить Node Eligibility Service , задав значение для app.nes.enabled использования ghe-config.

  1. Чтобы подключиться к ваш экземпляр GitHub Enterprise Server, SSH в любом из узлов кластера. На рабочей станции выполните следующую команду. Замените HOSTNAME именем узла. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы проверить, включена ли Node Eligibility Service в данный момент, выполните следующую команду.

    Shell
    ghe-config app.nes.enabled
    
  3. Чтобы включить Node Eligibility Service, выполните следующую команду.

    Shell
    ghe-config app.nes.enabled true
    
  4. Чтобы применить конфигурацию, выполните следующую команду.

    Примечание.

    Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.

    Shell
    ghe-config-apply
    
  5. Подождите завершения запуска конфигурации.

  6. Чтобы убедиться, что Node Eligibility Service выполняется, из любого узла выполните следующую команду.

    Shell
    nomad status nes
    

Настройка параметров TTL для Node Eligibility Service

Чтобы определить, как Node Eligibility Service уведомляет вас, можно настроить параметры TTL для fail и warn состояний. TTL для fail состояния должен быть выше, чем срок жизни для warn состояния.

  1. Чтобы подключиться к ваш экземпляр GitHub Enterprise Server, SSH в любом из узлов кластера. На рабочей станции выполните следующую команду. Замените HOSTNAME именем узла. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы проверить текущие параметры TTL, выполните следующую команду.

    Shell
    nes get-node-ttl all
    
  3. Чтобы задать TTL для fail состояния, выполните следующую команду. Замените MINUTES числом минут, используемых для сбоев.

    Shell
    nes set-node-ttl fail MINUTES
    
  4. Чтобы задать TTL для warn состояния, выполните следующую команду. Замените MINUTES числом минут, используемых для предупреждений.

    Shell
    nes set-node-ttl warn MINUTES
    

Node Eligibility Service Управление возможностью автономного использования узла

По умолчанию Node Eligibility Service предоставляет оповещения для уведомления об изменениях работоспособности узлов кластера. При необходимости, если служба определяет, что неработоспособный узел недоступен для повторного подключения к кластеру, можно разрешить службе отключать узел в автономном режиме.

При отключении узла экземпляр удаляет выделения заданий из узла. Если узел запускает службы хранилища данных, обновите конфигурацию, Node Eligibility Service чтобы отразить несовместимость узла, чтобы повторно присоединиться к кластеру.

Чтобы управлять тем, может ли Node Eligibility Service узел и его службы работать в автономном режиме, можно настроить adminaction состояния для узла. Если узел находится в approved состоянии, Node Eligibility Service может отключить узел. Если узел находится в none состоянии, Node Eligibility Service не удается отключить узел.

  1. Чтобы подключиться к ваш экземпляр GitHub Enterprise Server, SSH в любом из узлов кластера. На рабочей станции выполните следующую команду. Замените HOSTNAME именем узла. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы настроить Node Eligibility Service возможность автономного использования узла, выполните одну из следующих команд.

    • Чтобы служба автоматически выполняла административные действия при отключении узла, выполните следующую команду. Замените HOSTNAME именем узла.

      Shell
      nes set-node-adminaction approved HOSTNAME
      
    • Чтобы отменить Node Eligibility Serviceвозможность автономного выполнения узла, выполните следующую команду. Замените HOSTNAME именем узла.

      Shell
      nes set-node-adminaction none HOSTNAME
      

Просмотр обзора работоспособности узлов

Чтобы просмотреть общие сведения о работоспособности узлов, Node Eligibility Serviceиспользуйте один из следующих методов.

  • SSH в любой узел в кластере, а затем запустите .nes get-cluster-health
  • Перейдите на страницу Консоль управления"Состояние". Дополнительные сведения см. в разделе Доступ к консоли управления.

Повторное включение недопустимого узла для присоединения к кластеру

После Node Eligibility Service обнаружения превышения срока жизни узла для fail состояния и после того, как служба помечает узел как ineligible, служба больше не обновит состояние работоспособности узла. Чтобы повторно включить узел для присоединения к кластеру, можно удалить ineligible состояние с узла.

  1. Чтобы подключиться к ваш экземпляр GitHub Enterprise Server, SSH в любом из узлов кластера. На рабочей станции выполните следующую команду. Замените HOSTNAME именем узла. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы проверить текущее adminaction состояние узла, выполните следующую команду. Замените HOSTNAME именем узла недопустимого узла.

    Shell
    nes get-node-adminaction HOSTNAME
    
  3. adminaction Если в настоящее время задано approvedсостояние, измените состояние, none выполнив следующую команду. Замените HOSTNAME именем узла недопустимого узла.

    Shell
    nes set-node-adminaction none HOSTNAME
    
  4. Чтобы убедиться, что узел находится в работоспособном состоянии, выполните следующую команду и убедитесь, что состояние узла равно ready.

    Shell
    nomad node status
    
    • Если состояние узла равно ineligible, сделайте узел допустимым, подключив его к узлу через SSH и выполнив следующую команду.

      Shell
      nomad node eligibility -enable -self
      
  5. Чтобы обновить право узла, Node Eligibility Serviceвыполните следующую команду. Замените HOSTNAME именем узла.

    Shell
    nes set-node-eligibility eligible HOSTNAME
    
  6. Подождите 30 секунд, а затем проверьте работоспособность кластера, чтобы убедиться, что целевой узел имеет право, выполнив следующую команду.

    Shell
    nes get-cluster-health
    

Просмотр журналов для Node Eligibility Service

Журналы Node Eligibility Service можно просматривать из любого узла в кластере или с узла, на котором выполняется служба. Если вы создаете пакет поддержки, будут включены журналы. Дополнительные сведения см. в разделе Предоставление данных в поддержку GitHub.

  1. Чтобы подключиться к ваш экземпляр GitHub Enterprise Server, SSH в любом из узлов кластера. На рабочей станции выполните следующую команду. Замените HOSTNAME именем узла. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы просмотреть журналы Node Eligibility Service для любого узла в кластере, выполните следующую команду.

    Shell
    nomad alloc logs -job nes
    
  3. Кроме того, можно просмотреть журналы на Node Eligibility Service узле, на котором выполняется служба. Служба записывает журналы в системный журнал.

    • Чтобы определить, какой узел выполняется 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"
      
    • Чтобы просмотреть журналы на узле, подключитесь к узлу через SSH, а затем выполните следующую команду.

      Shell
      journalctl -t nes
      

Дополнительные материалы