Build, Share, Collaborate

Контейнери є полегшеною версією користувальницького простору операційної системи Linux – фактично, це «голий» мінімум. Тим не менш, це все одно повноцінна операційна система, і тому якість цього контейнера так само важливо, як повноважної операційної системи. Саме тому довгий час ми пропонували образи Red Hat Enterprise Linux (RHEL), щоб користувачі могли мати сертифіковані, сучасні та актуальні контейнери корпоративного рівня. Запуск образів контейнерів (container images) RHEL на хостах контейнерів (container hosts) RHEL забезпечує сумісність і переносимість між середовищами, не кажучи вже про те, що це вже знайомі інструменти. Була, щоправда, одна проблема. Ви не могли просто передати такий образ комусь ще, навіть якщо йшлося про замовника чи партнера, який використовує Red Hat Enterprise Linux.

Build, Share, Collaborate

Але тепер усе змінилося

З випуском універсального образу Red Hat Universal Base Image (UBI) тепер можна отримувати звичну надійність, безпеку та високу продуктивність офіційних образів контейнерів Red Hat незалежно від того, чи є передплата чи ні. Це означає, що можна будувати контейнізований додаток на UBI, поміщати його в реєстр контейнерів на ваш вибір і ділитися ним з усім світом. Red Hat Universal Base Image дозволяє будувати, ділитися та вести спільну роботу над контейнізованим додатком у будь-якому оточенні – там де хочете.

Build, Share, Collaborate

Завдяки UBI існує можливість публікувати та запускати свої програми практично в будь-якій інфраструктурі. Але якщо запускати їх на платформах Red Hat, таких як Red Hat OpenShift та Red Hat Enterprise Linux, можна отримати додаткові переваги (більше золота!). І поки ми не перейшли до детальнішого опису UBI, дозвольте надати короткий FAQ, навіщо потрібна RHEL Subscription. Отже, що буде під час запуску образу UBI на платформі RHEL/OpenShift?

Build, Share, Collaborate

А тепер, коли на маркетинг задоволений, поговоримо детальніше про UBI

Причини застосування UBI

Що ви повинні відчувати, щоб зрозуміти, що UBI буде вам корисним:

  • Мої розробники хочуть використовувати образи контейнерів, які можна розповсюджувати та запускати у будь-якому оточенні.
  • Моя команда операції хоче підтримуваний базовий образ із життєвим циклом корпоративного рівня
  • Мої архітектори хочуть пропонувати Оператор Kubernetes моїм замовникам/кінцевим користувачам
  • Мої замовники хочуть ус не дмуть підтримку корпоративного рівня для всього свого оточення Red Hat
  • моє співтовариство хоче ділитися, запускати, публікувати контейнізовані програми буквально скрізь

Якщо хоча б на один зі сценаріїв вам підходить, то напевно слід звернути увагу на UBI.

Більше, ніж просто якийсь базовий образ

UBI – менше, ніж повноцінна ОС, але UBI має три важливі речі:

  1. Набір із трьох базових образів (ubi, ubi-minimal, ubi-init)
  2. Образи з вже готовими середовищами виконання різних мов програмування (nodejs, ruby, python, php, perl тощо)
  3. Набір пов'язаних пакетів у репозиторії YUM з найпоширенішими залежностями

Build, Share, Collaborate

UBI створювався як основа для cloud – native та веб-додатків, що розробляються та постачаються в контейнерах. Весь контент в UBI є підмножиною RHEL. Всі пакети в UBI надходять через канали RHEL і підтримуються подібно до RHEL при запуску на підтримуваних Red Hat платформах, таких як OpenShift і RHEL.

Build, Share, Collaborate

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

Щоб полегшити завдання, пов'язані з оновленням, Red Hat активно розвиває розробку та підтримку, завдяки чому UBI 7 можна запускати, наприклад, на хостах RHEL 8, а UBI 8 – на хостах RHEL 7. Це забезпечує користувачам необхідну гнучкість, впевненість та спокій у процесі наприклад, оновлень платформ в образах контейнерів або використовуваних хостів. Тепер все це можна розділити на два самостійні проекти.

Три базові образи

Build, Share, Collaborate

Мінімальний – призначений для додатків із усіма залежностями (Python, Node.js, .NET, etc.)

  • Мінімальний набір попередньо встановленого контенту
  • Без файлів, що виконуються suid
  • Мінімальний інструментарій менеджера пакетів (установка, оновлення та видалення)

Платформа – для будь-яких програм, що запускаються на RHEL

  • Уніфікований криптографічний стек OpenSSL
  • Повний стек YUM
  • Включено корисні основні утиліти ОС (tar, gzip, vi, тощо)

Multi-Service – полегшує запуск кількох сервісів в одному контейнері

  • Налаштований для запуску systemd при старті
  • Можливість включення сервісів на етапі збирання

Образи контейнерів з готовими середовищами виконання мов програмування

На додаток до базових образів, які дозволяють встановлювати підтримку мов програмування, UBI включають попередньо зібрані образи з вже готовими середовищами виконання низки мов програмування. Багато розробників можуть просто взяти образ і розпочати роботу над додатком, який вони розробляють.

З запуском UBI Red Hat пропонує два набори образів – на базі RHEL 7 та на базі RHEL 8. За їх основу було взято відповідно Red Hat Software Collections (RHEL 7) та Application Streams (RHEL 8). Ці середовища виконання підтримуються в актуальному стані і стандартно отримують до чотирьох оновлень на рік, таким чином завжди є можливість для роботи з найсвіжішими і стабільнішими версіями.

Ось перелік образів контейнерів UBI 7:

Build, Share, Collaborate

Ось перелік образів контейнерів для UBI 8:

Build, Share, Collaborate

Асоційовані пакети

Використання готових образів справді дуже зручне. Red Hat підтримує їхню актуальність та оновлює їх разом із випуском нової версії RHEL, а також при появі критичних оновлень CVE відповідно до політики оновлень RHEL image policy для того, щоб можна було взяти один із цих образів і відразу ж приступити до роботи над додатком.

Build, Share, Collaborate

Але іноді при створенні програми вам може раптово знадобитися якийсь додатковий пакет. Або, іноді, щоб змусити програму працювати, потрібно оновити той чи інший пакет. Саме тому образи UBI поставляються з набором RPM, які доступні за допомогою yum і які поширюються за допомогою швидкої та високодоступної мережі доставки контенту (вам пакет!). Коли ви запускаєте yum-оновлення на своєму CI/CD у той критичний момент релізу, ви можете бути впевнені – воно працюватиме.

RHEL – це основа

Ми не втомлюємося повторювати, що RHEL – це основа всього. Знаєте, які команди Red Hat працюють над створенням базових образів? Наприклад, ось ці:

  • Інженерно-технічна група, що відповідає за забезпечення того, щоб базові бібліотеки, такі як glibc та OpenSSL, а також мовні середовища виконання, такі як Python та Ruby, забезпечували стабільну продуктивність та надійно працювали з робочими навантаженнями при використанні у контейнерах.
  • Група забезпечення безпеки продуктів займається своєчасним виправленням помилок та проблем безпеки в бібліотеках та мовних середовищах, ефективність їх роботи оцінюється за допомогою спеціального індексу Container Health Index grade.
  • Команда менеджерів з продукту та інженерів займається додаванням нових функцій та забезпечують тривалий життєвий цикл продукту, що дає впевненість у вкладених інвестиціях, які можна буде використовувати як основу.

Red Hat Enterprise Linux виступає в ролі відмінного хоста і образу для контейнерів, але для багатьох розробників важлива можливість роботи з системою в різних форматах, деякі з яких можуть виходити за рамки підтримуваних сценаріїв використання Linux системи. І тут на допомогу приходять універсальні образи UBI.

Припустимо, саме зараз, на даному етапі, ви просто шукаєте базовий образ, щоб розпочати роботу над простим контейнізованим додатком. Або ви вже ближче до майбутнього і рухаєтеся від автономних контейнерів, що працюють на container engine, до cloud-native історії з використанням операторів (building and certifying Operators), що працюють на OpenShift. У будь-якому випадку UBI забезпечить для цього чудову основу.

Build, Share, Collaborate

Контейнери включають полегшену версію користувальницького простору операційної системи в новому форматі пакетування. Випуск образів UBI встановлює новий галузевий стандарт для контейнізованої розробки, контейнери корпоративного класу стають доступними для будь-яких користувачів, незалежних розробників ПЗ, open source спільнот. Зокрема, розробники ПЗ можуть стандартизувати свої продукти, використовуючи єдину перевірену основу для всіх своїх контейнізованих додатків, у тому числі Kubernetes Operators. Компаніям-розробникам, які використовують UBI, також доступні сертифікація Red Hat Container Certification та Red Hat OpenShift Operator Certification, а це в свою чергу дозволяє безперервно верифікувати програмне забезпечення, яке запускається на платформах Red Hat, таких як OpenShift.

Build, Share, Collaborate

Як почати працювати з образом

Якщо коротко – дуже просто. Podman доступний не тільки у RHEL, але також у Fedora, CentOS та в ряді інших дистрибутивів Linux. Все, що потрібно зробити – вивантажити образ із одного з наступних репозиторіїв, і вперед.

Для UBI 8:

podman pull registry.access.redhat.com/ubi8/ubi
podman pull registry.access.redhat.com/ubi8/ubi-minimal
podman pull registry.access.redhat.com/ubi8/ubi-init

Для UBI 7:

podman pull registry.access.redhat.com/ubi7/ubi
podman pull registry.access.redhat.com/ubi7/ubi-minimal
podman pull registry.access.redhat.com/ubi7/ubi-init

Ну і подивіться повний Universal Base Image Guide

Джерело: habr.com

Додати коментар або відгук