Підсистема управління зовнішнім трафіком

Загальний опис підсистеми

Підсистема представлена інтегрованою в OpenShift платформу програмною компонентою OpenShift Router, яка використовує HAProxy у якості зворотного проксі-сервера / балансувальника та забезпечує надійну та захищену взаємодію зовнішніх клієнтів з сервісами Платформи.

Підсистема є центральною точкою входу зовнішнього трафіку до OpenShift-кластера та відіграє роль шлюза з функцією перенаправлення вхідного трафіку до сервісів Платформи та реєстрів, які на ній розгорнуті.

Підсистема використовує домен з кластерної OpenShift конфігурації як домен для зовнішнього API-шлюзу за замовчуванням. Цей домен також використовується при генерації доменного імені за замовчуванням для ресурсу OpenShift Route, якщо явно не вказане інше доменне ім’я.

Функції підсистеми

  • Перенаправлення вхідного зовнішнього трафіку на внутрішні сервіси згідно з налаштованими правилами маршрутизації

  • Відслідковування змін налаштувань сервісів та актуалізація правил маршрутизації

  • Моніторинг стану сервісів та розподілення трафіку на екземпляри, які доступні для обробки запитів

  • Управління доступом по IP та мережам до підсистем Платформи та реєстрів

  • Балансування навантаження через розподілення вхідного трафіку між сервісами

  • Шифрування зовнішнього трафіку та дешифрування перед перенаправленням на внутрішні сервіси (SSL/TLS Termination)

  • Збір даних метрик продуктивності для моніторингу

  • Журналювання вхідних запитів

Технічний дизайн підсистеми

external traffic subsystem.drawio

Компоненти підсистеми

Назва компоненти Представлення в платформі Походження Репозиторій Призначення

Зовнішній API-шлюз операційної зони

router-default

3rd-party

-

OpenShift Ingress Controller (також відомий як OpenShift Router) - це компонент, що керує маршрутизацією вхідного трафіку в OpenShift кластері.

Оператор зовнішнього API-шлюзу операційної зони

ingress-operator

3rd-party

github:/openshift/cluster-ingress-operator

Відповідальний за розгортання та конфігурацію зовнішнього API-шлюзу операційної зони

Технологічний стек

При проектуванні та розробці підсистеми, були використані наступні технології:

Атрибути якості підсистеми

Scalability

Підсистема управління зовнішнім трафіком підтримує вертикальне та горизонтальне масштабування для обробки запитів у разі збільшення об’єму зовнішнього трафіку шляхом виділення додаткових ресурсів для OpenShift Router поди або збільшення кількості OpenShift Router под відповідно. Горизонтальне масштабування забезпечується механізмом Horizontal Pod Autoscaler (HPA), який, базуючись на даних моніторингу метрик кількості запитів або використанню ресурсів, автоматично збільшує або зменшує кількість реплік Router відповідно поточному навантаженню та цільовим показникам.

Детальніше можна ознайомитись у відповідних розділах:

Availability

Підсистема управління зовнішнім трафіком підтримує розгортання в режимі високої доступності для забезпечення обробки вхідного трафіку у разі відмов. Висока доступність забезпечується завдяки застосуванню горизонтального масштабування та розгортанню дублюючих реплік OpenShift Router под. Це дозволяє розподіляти зовнішній трафік по реплікам та гарантувати, що у разі відмови OpenShift Router поди, трафік буде перенаправлено на репліку.

Детальніше можна ознайомитись у відповідних розділах:

Security

Підсистема управління зовнішнім трафіком надає гнучкий та широкий функціонал контролю та обмеження вхідного мережевого трафіку.

Забезпечує цілісність та конфеденційність даних в каналі передачі інформації між клієнтами та сервісами платформи. Відповідає вимогам критпостійкості.

Підсистема не логує та не зберігає конфіденційну інформацію.

Performance

Висока продуктивність Підсистеми управління зовнішнім трафіком досягається завдяки декільком чинникам:

  • використанню високопродуктивного зворотнього проксі-сервера HAProxy.

  • рівномірності розподілення трафіку між репліками OpenShift Router под.

  • автоматичному горизонтальному масштабуванню для досягнення цільових показників при збільшенні об’єму зовнішнього трафіку.

Observability

Підсистема управління зовнішнім трафіком підтримує журналювання вхідних запитів та збір метрик продуктивності для подальшого аналізу через веб-інтерфейси відповідних підсистем Платформи.

Детальніше з дизайном підсистем можна ознайомитись у відповідних розділах: