• Русский
  • Конфигурация планирования

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

    Содержание

    Обзор сценария

    • PostgreSQL развернут в выделенном бизнес-кластере, и заказчики хотят, чтобы разные экземпляры PostgreSQL запускались на разных узлах для упрощения обслуживания и ускорения локализации неисправностей.

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

    Оба сценария можно реализовать, настроив Node Labels и Pod Tolerations в разделе Scheduling Configuration на странице создания экземпляра.

    В этом разделе показано, как запускать экземпляры PostgreSQL на разных указанных узлах. Назначенные узлы следующие:

    КомпонентУказанные узлы
    PostgreSQL192.168.100.103 192.168.100.104 192.168.100.105

    Предварительные требования

    1. Администратор платформы должен обновить метки узлов на указанных узлах, чтобы middleware мог планироваться на назначенные узлы на основе меток.

    2. Администратор платформы должен установить taints на указанных узлах, чтобы middleware мог планироваться на узлы с taints на основе tolerations, при этом предотвращая планирование других приложений на эти узлы.

    Вы можете настроить узлы и taints в соответствии с фактическими требованиями.

    Администратор платформы уже установил taints и метки узлов в центре платформы со следующими конфигурациями:

    УзелNode LabelNode Taint
    192.168.100.103 192.168.100.104 192.168.100.105keypostgres=valuepostgreskeypostgres=valuepostgres:NoSchedule

    Объяснение конфигурации

    • Taint: Атрибут ключ-значение на узле, который предотвращает планирование Pod на этом узле, если Pod не имеет соответствующей toleration.

    • Toleration: Атрибут ключ-значение на Pod, который позволяет ему терпеть определённые taints узла, обеспечивая планирование Pod только на узлы, которые он может терпеть.

    Taints и tolerations поддерживают параметр effect с синтаксисом key=value:effect. effect определяет уровень исключения для Pod и включает три типа:

    Тип эффектаОписание
    NoScheduleНовые Pod, не терпящие этот taint, не могут быть запланированы на узле. Это строгие ограничения, но существующие Pod на узле не затрагиваются.
    PreferNoScheduleБолее мягкая версия NoSchedule, где новые Pod, не терпящие этот taint, предпочтительно не должны планироваться на узле, но могут быть запланированы, если других узлов нет. Существующие Pod не затрагиваются.
    NoExecuteНовые Pod, не терпящие этот taint, не могут быть запланированы на узле. Кроме того, если существующий Pod перестаёт соответствовать критериям taint-toleration из-за изменений taint узла или tolerations Pod, он будет удалён.

    При определении tolerations на Pod поддерживаются два оператора:

    ОператорОписание
    EqualToleration Pod должен точно совпадать с ключом, значением и эффектом taint узла.
    ExistsToleration Pod должен совпадать с ключом и эффектом taint узла, но поле значения может быть пустым.

    Процедура

    Web Console
    1. В левой панели навигации нажмите PostgreSQL.

    2. Нажмите Create PostgreSQL Instance.

    3. Заполните параметры конфигурации. В разделе Scheduling Configuration выберите метку узла и taint на основе указанных узлов.

    4. Нажмите Create. Pod экземпляра PostgreSQL будет запланирован на узлы 192.168.100.103, 192.168.100.104 и 192.168.100.105.

    Проверка

    Вы можете проверить, что экземпляры PostgreSQL работают на указанных узлах, перейдя в Container Platform > Compute Components > Container Groups.