Развертывание с высокой доступностью
Для производственных сред рекомендуется развертывать систему Connectors в конфигурации с высокой доступностью (HA) для обеспечения непрерывности сервиса и устойчивости к сбоям.
Содержание
Краткий обзор ключевых шаговНастройка репликConnectorsCoreConnectorsGitConnectorsOCIConnectorsMavenConnectorsHarborКомпоненты без нагрузокВстроенная антиаффинность подовНастройка правил affinityКраткий обзор ключевых шагов
Настройка Connector с высокой доступностью включает три шага:
- Установить replicas ≥ 2 — Задайте
spec.workloads[].replicasдля каждого компонента Connectors. Минимально необходимо настроить ConnectorsCore (api, controller-manager, proxy) и любые используемые вами компоненты плагинов. - Использовать встроенную антиаффинность — Система автоматически добавляет правила pod anti-affinity типа
preferredDuringSchedulingIgnoredDuringExecution, чтобы реплики распределялись по узлам без дополнительной настройки. - Настроить affinity для мультизональных кластеров (опционально) — При необходимости переопределите
spec.workloads[].template.spec.affinityдля обеспечения распределения по зонам с помощьюrequiredDuringSchedulingIgnoredDuringExecution.
Подробности по каждому шагу приведены ниже.
Настройка реплик
Вы можете увеличить количество реплик для каждой нагрузки, чтобы обеспечить высокую доступность. Это делается через поле workloads в спецификации компонента. Для производственных сред рекомендуется настроить не менее 2 реплик для каждой нагрузки, чтобы гарантировать непрерывность сервиса при сбоях узлов или обновлениях.
Ниже приведены конкретные примеры для основных компонентов Connector:
ConnectorsCore
ConnectorsCore включает три основные нагрузки: API сервер, controller manager и proxy. Для высокой доступности настройте все три с несколькими репликами:
Через некоторое время все поды компонента connectors-core будут иметь количество реплик 2, за исключением connectors-csi.
ConnectorsGit
ConnectorsGit запускает один плагин для интеграции с Git Server:
Через некоторое время все поды компонента connectors-git будут иметь количество реплик 2.
ConnectorsOCI
ConnectorsOCI запускает один плагин для интеграции с OCI registry:
Через некоторое время все поды компонента connectors-oci будут иметь количество реплик 2.
ConnectorsMaven
ConnectorsMaven запускает один плагин для интеграции с Maven registry:
Через некоторое время все поды компонента connectors-maven будут иметь количество реплик 2.
ConnectorsHarbor
ConnectorsHarbor запускает один плагин для функций, специфичных для Harbor:
Через некоторое время все поды компонента connectors-harbor будут иметь количество реплик 2.
Компоненты без нагрузок
Другие компоненты Connector не имеют workloads Deployment и поэтому не требуют настройки реплик.
Встроенная антиаффинность подов
Система включает встроенные правила pod anti-affinity, чтобы обеспечить распределение реплик по разным узлам. По умолчанию используется preferredDuringSchedulingIgnoredDuringExecution с весом 100, что означает, что планировщик будет стараться размещать поды на разных узлах, но при отсутствии других вариантов может разместить их на одном узле.
Эта конфигурация по умолчанию обеспечивает:
- Распределение подов по разным узлам, когда это возможно
- Возможность планирования даже при ограниченном количестве узлов в кластере
- Автоматическое переключение при недоступности узла
Настройка правил affinity
Если стандартные правила affinity не соответствуют вашим требованиям, вы можете переопределить их через конфигурацию workloads. Поле template.spec.affinity позволяет задать пользовательские правила affinity.
Для мультизональных кластеров можно настроить зонально-осведомленное планирование, чтобы распределять поды по зонам доступности. В следующем примере используется requiredDuringSchedulingIgnoredDuringExecution для жесткого требования распределения по зонам, в сочетании с preferredDuringSchedulingIgnoredDuringExecution для предпочтительного распределения по узлам внутри каждой зоны:
Эта конфигурация обеспечивает:
- Строгое распределение подов по разным зонам доступности (жесткое требование)
- Предпочтительное размещение подов на разных узлах внутри одной зоны (мягкое требование)
- Устойчивость к сбоям как на уровне зон, так и на уровне узлов