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 Operator маім заказчыкам/канчатковым карыстальнікам
  • Мае заказчыкі хочуць у вус не дзьмуць падтрымку карпаратыўнага ўзроўню для ўсяго свайго асяроддзі 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

Дадаць каментар