Платформа оркестрації контейнерів

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

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

OpenShift є гнучкою платформою, що може бути легко розширена, доповнена та інтегрована з іншими інструментами, платформами та програмним забезпеченням. Це дозволяє мати:

  • можливості моніторингу та логування, які надають інформацію про стан та продуктивність програмного забезпечення та інфраструктури

  • політики мережевої безпеки та контроль доступу на основі ролей (RBAC), що дозволяють безпечно публікувати та надавати доступ кінцевим користувачам

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

  • розподілені сховища даних для зберігання стану та інформації stateful-застосунків

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

2. Функції платформи оркестрації контейнерів

  • Оркестрація контейнерів

  • Балансування навантаження

  • Масштабування застосунків

  • Моніторинг застосунків

  • Забезпечення безпеки та надійності

3. Верхньорівнева архітектура платформи оркестрації контейнерів

container orchestration
Зображення 1. Діаграма розгортання на прикладі Платформи Реєстрів, встановленій у публічне хмарне середовище AWS.

Архітектура OpenShift складається з декількох віртуальних машин, включаючи:

  • Мастер віртуальні машини. Відповідають за керування загальним станом кластера, включаючи планування та розгортання застосунків.

  • Інфраструктурні та Платформні віртуальні машини. Містять системні оператори та застосунки, що забезпечують роботу Платформи оркестрації контейнерів та Платформи реєстрів.

  • Реєстрові віртуальні машини. Запускають контейнери з програмним забезпеченням для роботи реєстру.

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

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

5. Атрибути якості платформи оркестрації контейнерів

5.1. Scalability

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

Платформа досягає масштабованості за допомогою поєднання декларативної конфігурації, автоматичного масштабування (HPA) та автоматичного масштабування самого кластера. Декларативна конфігурація дозволяє адміністраторам визначати та управляти ресурсами застосунків у послідовний та повторюваний спосіб, що полегшує масштабування відповідно до потреб. HPA відстежує використання ресурсів окремих застосунків та масштабує їх кількість вгору або вниз залежно від попередньо заданих правил, таких як використання CPU чи пам’яті. Автоматичне масштабування кластера, з іншого боку, автоматично створює або видаляє віртуальні машини в кластері в залежності від попиту, що дозволяє ефективно використовувати ресурси та оптимізувати витрати.

5.2. Availability

Платформа оркестрації контейнерів Openshift надає кілька функцій та механізмів для покращення доступності застосунків, які працюють на платформі, зокрема:

  • Openshift підтримує автоматичне балансування навантаження та перемикання на резервні екземпляри застосунків на різних віртуальних машинах кластера. Це гарантує, що якщо віртуальна машина працює некоректно, то його роботу можна безперешкодно перенести на інші здорові машини без впливу на доступність застосунку.

  • Openshift підтримує концепцію реплік, яка дозволяє запускати кілька екземплярів застосунків одночасно. Це гарантує, що навіть якщо один або декілька екземплярів вийдуть з ладу, застосунок все ще буде доступний для користувачів через робочі екземпляри.

  • Openshift дозволяє використовувати rolling оновлення для розгортання нових версій застосунків з мінімальним впливом на користувачів. Це забезпечує можливість оновлення без перерв у роботі або призупинення надання послуг.

5.3. Portability

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

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

Крім того, Платформа оркестрації контейнерів надає набір API та абстракцій, що дозволяє командам експлуатації керувати та оркеструвати контейнеризовані застосунки у стандартний та платформонезалежний спосіб.

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

5.4. Operability

Платформа оркестрації контейнерів Openshift надає набір інструментів адміністратора та API для управління, експлуатації та розв’язання проблем з кластерами та застосунками на ній, включаючи візуальні інтерфейси, консоль утиліту oc та OpenShift API.

Ці інструменти дозволяють адміністраторам переглядати та керувати станом кластера, розгортати нові додатки або оновлення, контролювати метрики продуктивності та журнали, виконувати різного роду перевірки, аудит та масштабування.

Операційність в платформі також досягається завдяки практикам інфраструктури-як-код (IaC) та інструментом автоматизації Terraform, який дозволяє здійснювати послідовне та повторне розгортання та налаштування кластерів OpenShift та пов’язаних ресурсів.

5.5. Security

Платформа оркестрації контейнерів Openshift забезпечує широкий спектр функцій та можливостей для забезпечення безпеки застосунків та їх даних. До них належать контроль доступу на основі ролей (RBAC), політики мережі, управління секретами, безпека контейнерних образів, журналювання аудиту та обмеження security context (SCC).

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

Управління секретами забезпечує безпечний механізм зберігання та використання чутливих даних, таких як паролі та сертифікати.

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

5.6. Observability

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

5.7. Extensibility

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