Skip to main content

Перебалансирование рабочих нагрузок кластера

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

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

People with administrative SSH access to a GitHub Enterprise Server instance can rebalance cluster workloads on the instance.

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

О балансе рабочей нагрузки для кластера GitHub Enterprise Server

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

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

Вы можете управлять выделениями с помощью ghe-cluster-balance служебной программы, которая может отображать состояние существующих выделений или принудительно распределять выделение экземпляра. Например, вы должны сбалансировать выделения после добавления нового узла в кластер. При необходимости можно запланировать обычную балансировку.

Следующие команды можно выполнить из любого узла в кластере с помощью административной оболочки. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

Проверка распределения заданий кластера

В некоторых случаях, например сбой оборудования, базовое программное обеспечение, которое управляет выделением, переносит задачи из неработоспособного узла в здоровый узел. Если неработоспособный узел восстанавливается, задача может остаться назначенной восстановленным узлом, что может привести к небалансной нагрузке. Риск сбоя задания может увеличиться, если выделение небалансировано, а дополнительные узлы завершаются сбоем. Вы можете проверка распределение выделений с помощью служебной ghe-cluster-balance status программы.

  1. Чтобы просмотреть список выделений, выполните следующую команду. В служебной программе отображаются здоровые выделения зеленым цветом. Если какие-либо задания не распределяются должным образом, служебная программа отображает количество выделений красным цветом.

    Shell
    ghe-cluster-balance status
    
  2. Если задание неправильно распределено, проверьте выделение, выполнив следующую команду. Замените ЗАДАНИЕ одним заданием или списком заданий с разделителями-запятыми.

    Shell
     ghe-cluster-balance status -j JOB
    

    Например, чтобы просмотреть состояние выделения для HTTP-сервера и службы авторизации экземпляра, можно запустить ghe-cluster-balance status -j github-unicorn,authzd.

Перебалансирование выделений

После определения разбалансированных заданий на узлах кластера можно перебалансировать выделения с помощью служебной ghe-cluster-balance rebalance программы. Программа проверка распределение существующих заданий. Если какие-либо задания не сбалансируются, программа отображает задания и предложит продолжить. Если продолжить, программа создает новые выделения для распространения заданий.

  1. Чтобы выполнить сухой запуск и просмотреть результат повторной балансировки без внесения изменений, выполните следующую команду. Замените ЗАДАНИЕ одним заданием или списком заданий с разделителями-запятыми.

    Shell
    ghe-cluster-balance rebalance --dry-run -j JOB
    

    Например, чтобы выполнить сухой запуск заданий перебалансирования для HTTP-сервера и службы авторизации экземпляра, можно запустить ghe-cluster-balance rebalance --dry-run -j github-unicorn,authzd.

  2. Чтобы перебалансировать, выполните следующую команду. Замените ЗАДАНИЕ одним заданием или списком заданий с разделителями-запятыми.

    Shell
    ghe-cluster-balance rebalance -j JOB
    

Планирование перебалансирования выделения

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

Примечание. В настоящее время можно запланировать только перемещение заданий для HTTP-сервера github-unicorn.

  1. Чтобы настроить автоматическую почасовую балансировку заданий, выполните следующую команду.

    Shell
    ghe-config app.cluster-rebalance.enabled true
    
  2. При необходимости можно переопределить расписание по умолчанию, определив выражение cron. Например, выполните следующую команду, чтобы сбалансировать задания каждые три часа.

    Shell
    ghe-config app.cluster-rebalance.schedule '0 */3 * * *'
    
  3. Чтобы применить конфигурацию, выполните следующую команду.

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

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

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