Containerele sunt o versiune ușurată a spațiului utilizatorului din sistemul de operare Linux - practic, aceasta este „minimum” absolut. Cu toate acestea, rămâne tot o sistemă de operare complet funcțională, iar calitatea acestui container este la fel de importantă ca cea a unei sisteme de operare obișnuite. Din acest motiv, mult timp am oferit , astfel încât utilizatorii să poată avea containere de nivel enterprise, certificate, moderne și actualizate. Rularea (container images) RHEL pe gazdele de containere (container hosts) RHEL asigură compatibilitate și portabilitate între medii, pentru a nu mai vorbi de faptul că sunt deja instrumente cunoscute. Totuși, a existat o problemă. Nu puteai pur și simplu să transmiți o astfel de imagine cuiva, chiar dacă era vorba de un client sau partener care folosea Red Hat Enterprise Linux.

Dar acum totul s-a schimbat
Odată cu lansarea imaginii de bază universale Red Hat Universal Base Image (UBI), acum poți obține fiabilitatea, securitatea și performanța de înaltă calitate a imaginilor oficiale de containere Red Hat, indiferent dacă ai sau nu un abonament. Aceasta înseamnă că poți construi o aplicație containerizată pe UBI, să o plasezi într-un registru de containere pe care îl alegi și să o împărtășești cu toată lumea. Red Hat Universal Base Image permite construirea, împărtășirea și colaborarea asupra aplicațiilor containerizate în orice mediu – oriunde dorești.

Datorită UBI, există posibilitatea de a publica și rula aplicațiile tale aproape în orice infrastructură. Dar dacă le rulezi pe platformele Red Hat, cum ar fi Red Hat OpenShift și Red Hat Enterprise Linux, poți obține beneficii suplimentare (mai mult aur!). Și până nu trecem la o descriere mai detaliată a UBI, permite-mi să ofer un scurt FAQ despre de ce ai nevoie de un abonament RHEL. Așadar, ce se va întâmpla când rulați imaginea UBI pe platforma RHEL/OpenShift?

Acum, când marketingul este mulțumit, să discutăm mai detaliat despre UBI
Motive pentru a aplica UBI
Ce ar trebui să simți pentru a înțelege că UBI îți va fi util:
- Dezvoltatorii mei vor să folosească imagini de containere care pot fi distribuite și rulate în orice mediu Echipa mea
- operativă vrea o imagine de bază suportată, cu un ciclu de viață de nivel enterprise arhitecții
- Dezvoltatorii mei arhitecți vor să ofere clienții mei / utilizatorii finali
- Dezvoltatorii mei clienți vor să nu-și facă griji în legătură cu sprijinul de nivel corporatist pentru întreaga lor infrastructură Red Hat
- Al meu comunitate vrea să împărtășească, să ruleze, să publice aplicații containerizate practic oriunde
Dacă măcar unul dintre scenarii vi se potrivește, atunci cu siguranță ar trebui să acordați atenție UBI.
Mai mult decât un simplu lucru de bază
UBI – mai mic decât un sistem de operare complet, dar UBI are trei lucruri importante:
- Un set de trei imagini de bază (ubi, ubi-minimal, ubi-init)
- Imagini cu medii de execuție preconfigurate pentru diverse limbaje de programare (nodejs, ruby, python, php, perl etc.)
- Un set de pachete asociate în depozitul YUM cu cele mai comune dependențe

UBI a fost creat ca o bază pentru aplicații cloud-native și web, dezvoltate și livrate în containere. Tot conținutul din UBI este un subset al RHEL. Toate pachetele din UBI provin prin canalele RHEL și sunt susținute similar cu RHEL când rulează pe platforme Red Hat acceptate, cum ar fi OpenShift și RHEL.

Asigurarea unei suport de calitate pentru containere necesită eforturi semnificative din partea inginerilor, specialiștilor în securitate și a altor resurse adiționale. Este nevoie nu doar de testarea imaginilor de bază, ci și de analiza comportamentului acestora pe orice gazdă acceptată.
Pentru a facilita sarcinile legate de actualizări, Red Hat dezvoltă activ suportul, ceea ce permite ca UBI 7 să fie rulat, de exemplu, pe gazde RHEL 8, iar UBI 8 pe gazde RHEL 7. Acest lucru oferă utilizatorilor flexibilitatea, încrederea și liniștea necesară în procesul, de exemplu, al actualizărilor platformelor în imaginile containerelor sau gazdelor utilizate. Acum totul poate fi împărțit în două proiecte autonome.
Trei imagini de bază

Minimal – destinat aplicațiilor cu toate dependențele (Python, Node.js, .NET etc.)
- Un set minimal de conținut preinstalat
- Fără fișiere executabile suid
- Un set minimal de instrumente pentru managerul de pachete (instalare, actualizare și eliminare)
Platformă – pentru orice aplicații rulate pe RHEL
- Stivă criptografică unificată OpenSSL
- Stivă completă YUM
- Includ utilitare utile ale sistemului de operare (tar, gzip, vi etc.)
Multi-Service – simplifică rularea mai multor servicii într-un singur container
- Configurat pentru a rula systemd la pornire
- Capacitatea de a activa servicii în etapa de construcție
Imagini de containere cu medii de execuție pentru limbaje de programare deja configurate
În afară de imaginile de bază care permit instalarea suportului pentru limbajele de programare, UBI include imagini preconstruite cu medii de execuție pentru diverse limbaje de programare. Multe dezvoltatori pot pur și simplu să ia o imagine și să înceapă să lucreze la aplicația pe care o dezvoltă.
Odată cu lansarea UBI, Red Hat oferă două seturi de imagini – bazate pe RHEL 7 și RHEL 8. Acestea au fost create pe baza Red Hat Software Collections (RHEL 7) și Application Streams (RHEL 8). Aceste medii de execuție sunt menținute la zi și primesc standard până la patru actualizări pe an, asigurându-se astfel că aveți întotdeauna acces la cele mai recente și stabile versiuni.
Iată lista imaginilor de containere UBI 7:

Iată lista imaginilor de containere pentru UBI 8:

Pachete asociate
Utilizarea imaginilor gata de utilizare este cu adevărat convenabilă. Red Hat le menține actuale și le actualizează odată cu lansarea unei noi versiuni RHEL, precum și atunci când apar actualizări critice CVE, conform politicii de actualizări. pentru a putea lua una dintre aceste imagini și a începe imediat să lucrați la aplicație.

Dar uneori, atunci când creați o aplicație, s-ar putea să aveți nevoie brusc de un pachet suplimentar. Sau, uneori, pentru a face aplicația să funcționeze, este necesar să actualizați un anumit pachet. De aceea, imaginile UBI sunt livrate cu un set de RPM-uri, care sunt disponibile prin intermediul yum și care sunt distribuite printr-o rețea rapidă și de înaltă disponibilitate pentru livrarea de conținut (vă rog, pachet!). Când rulați yum-update în CI / CD în acel moment critic al lansării, vă puteți asigura că va funcționa.
RHEL – este baza
Nu obosim să repetăm că RHEL – este baza tuturor. Știți care echipe din Red Hat lucrează la crearea imaginilor de bază? De exemplu, aceste echipe:
- Grupul ingineresc și tehnic responsabil pentru asigurarea performanței stabile și a funcționării fiabile a bibliotecilor de bază, precum glibc și OpenSSL, și a mediilor de execuție, precum Python și Ruby, cu sarcini de lucru în containere.
- Grupul de asigurare a securității produselor se ocupă cu remedieri rapide ale erorilor și problemelor de securitate din biblioteci și medii de execuție, iar eficiența acestora este evaluată printr-un indice special. .
- Echipa de manageri de produs și ingineri se ocupă de adăugarea de noi funcționalități și asigură un ciclu lung de viață pentru produs, oferind astfel încredere în investițiile efectuate, care pot fi folosite ca bază.
Red Hat Enterprise Linux servește drept gazdă și imagine excelentă pentru containere, dar pentru mulți dezvoltatori este important să poată lucra cu sistemul în diverse formate, unele dintre acestea putând depăși scenariile de utilizare suportate de sistemul Linux. Și aici intervin imaginile universale UBI.
Să presupunem că în acest moment căutați doar o imagine de bază pentru a începe lucrul la o aplicație simplă containerizată. Sau poate că sunteți deja mai aproape de viitor, trecând de la containere autonome care rulează pe motorul containerelor, la o poveste cloud-native utilizând operatori (construind și certificând Operatori) care rulează pe OpenShift. Indiferent de caz, UBI va oferi o bază excelentă pentru acest lucru.

Containerele conțin o versiune ușoară a spațiului utilizator al sistemului de operare într-un nou format de ambalare. Lansarea imaginilor UBI stabilește un nou standard industrial pentru dezvoltarea containerizată, făcând astfel containerele de nivel enterprise disponibile pentru orice utilizator, dezvoltatori independenți de software și comunități open source. În special, dezvoltatorii de software pot standardiza produsele lor, utilizând o bază unică, testată, pentru toate aplicațiile lor containerizate, inclusiv . Companiile de dezvoltare care utilizează UBI au, de asemenea, acces la certificarea Red Hat Container Certification și Red Hat OpenShift Operator Certification, ceea ce permite verificarea continuă a software-ului rulat pe platformele Red Hat, precum OpenShift.

Cum să începi să lucrezi cu o imagine
Pe scurt – e foarte simplu. Podman este disponibil nu doar în RHEL, ci și în Fedora, CentOS și în câteva alte distribuții Linux. Tot ce trebuie să faci este să descarci imaginea din unul dintre următoarele repo-uri și să mergi mai departe.
Pentru 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
Pentru 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
Și nu uita să consulți Ghidul complet al Universal Base Image
Sursa: habr.com
