Container sind eine vereinfachte Version des Benutzerraums des Linux-Betriebssystems â tatsĂ€chlich das ânackteâ Minimum. Dennoch handelt es sich um ein vollwertiges Betriebssystem, und daher ist die QualitĂ€t dieses Containers ebenso wichtig wie die eines vollwertigen Betriebssystems. Aus diesem Grund haben wir lange Zeit , damit Benutzer zertifizierte, moderne und aktuelle Container auf Unternehmensniveau erhalten können. Der Start RHEL auf Container-Hosts von RHEL gewĂ€hrleistet KompatibilitĂ€t und PortabilitĂ€t zwischen Umgebungen, ganz zu schweigen davon, dass es sich um bereits vertraute Werkzeuge handelt. Es gab jedoch ein Problem. Sie konnten ein solches Bild nicht einfach an jemand anderen weitergeben, selbst wenn es sich um einen Kunden oder Partner handelt, der Red Hat Enterprise Linux verwendet.

Doch jetzt hat sich alles geÀndert
Mit der EinfĂŒhrung des Red Hat Universal Base Image (UBI) können Benutzer nun die gewohnte ZuverlĂ€ssigkeit, Sicherheit und hohe Leistung der offiziellen Red Hat Container-Images unabhĂ€ngig davon genieĂen, ob eine Subscription besteht oder nicht. Das bedeutet, dass Sie eine containerisierte Anwendung auf UBI erstellen, in ein Container-Register Ihrer Wahl hochladen und mit der ganzen Welt teilen können. Red Hat Universal Base Image ermöglicht es, containerisierte Anwendungen in jeder Umgebung zu erstellen, zu teilen und zusammenzuarbeiten â wo immer Sie möchten.

Dank UBI können Sie Ihre Anwendungen praktisch in jeder Infrastruktur veröffentlichen und starten. Wenn Sie sie jedoch auf Red Hat-Plattformen wie Red Hat OpenShift und Red Hat Enterprise Linux ausfĂŒhren, können Sie zusĂ€tzliche Vorteile erhalten (mehr Gold!). Und bevor wir zu einer detaillierteren Beschreibung von UBI ĂŒbergehen, lassen Sie uns ein kurzes FAQ dazu geben, warum eine RHEL Subscription benötigt wird. Was passiert also, wenn Sie ein UBI-Image auf der RHEL/OpenShift-Plattform starten?

Und jetzt, da das Marketing zufrieden ist, sprechen wir nĂ€her ĂŒber UBI
GrĂŒnde fĂŒr die Verwendung von UBI
Was Sie fĂŒhlen sollten, um zu verstehen, dass UBI fĂŒr Sie nĂŒtzlich sein wird:
- Meine Entwickler wollen Container-Images verwenden, die in jeder Umgebung verteilt und ausgefĂŒhrt werden können
- Mein Team Betrieb möchte ein unterstĂŒtztes Basis-Image mit einem Lebenszyklus auf Unternehmensebene
- Meine Architekten möchten anbieten meinen Kunden/Endbenutzern
- Meine Kunden möchten keinen Aufwand mit der UnterstĂŒtzung auf Unternehmensebene fĂŒr ihre gesamte Red Hat-Umgebung haben
- Mein Gemeinschaft möchte containerisierte Anwendungen buchstĂ€blich ĂŒberall teilen, starten und veröffentlichen
Wenn einer der Szenarien fĂŒr Sie zutrifft, sollten Sie definitiv auf UBI achten.
Mehr als nur ein grundlegendes Image
UBI â weniger als ein vollstĂ€ndiges Betriebssystem, aber UBI hat drei wichtige Dinge:
- Set aus drei Basis-Images (ubi, ubi-minimal, ubi-init)
- Bilder mit bereits vorhandenen Laufzeitumgebungen fĂŒr verschiedene Programmiersprachen (nodejs, ruby, python, php, perl usw.)
- Ein Satz von verbundenen Paketen im YUM-Repository mit den gebrÀuchlichsten AbhÀngigkeiten

UBI wurde als Grundlage fĂŒr cloud-native und webbasierte Anwendungen entwickelt, die in Containern erstellt und bereitgestellt werden. Alle Inhalte in UBI sind ein Teilmenge von RHEL. Alle Pakete in UBI kommen ĂŒber die RHEL-KanĂ€le und werden Ă€hnlich wie RHEL auf unterstĂŒtzten Red Hat-Plattformen wie OpenShift und RHEL gewartet.

Um qualitativ hochwertige UnterstĂŒtzung fĂŒr Container zu gewĂ€hrleisten, sind erhebliche Anstrengungen von Ingenieuren, Sicherheitsspezialisten und anderen zusĂ€tzlichen Ressourcen erforderlich. Es ist nicht nur eine Testung der Basis-Images erforderlich, sondern auch eine Analyse ihres Verhaltens auf jedem unterstĂŒtzten Host.
Um die Aufgaben im Zusammenhang mit Updates zu erleichtern, entwickelt Red Hat aktiv die Entwicklung und UnterstĂŒtzung weiter, sodass UBI 7 beispielsweise auf RHEL 8-Hosts ausgefĂŒhrt werden kann, wĂ€hrend UBI 8 auf RHEL 7-Hosts laufen kann. Dies bietet den Benutzern die notwendige FlexibilitĂ€t, Sicherheit und Ruhe im Prozess, beispielsweise bei der Aktualisierung von Plattformen in Container-Images oder verwendeten Hosts. Nun können all dies in zwei eigenstĂ€ndige Projekte unterteilt werden.
Drei Basis-Images

Minimal â bestimmt fĂŒr Anwendungen mit allen AbhĂ€ngigkeiten (Python, Node.js, .NET usw.)
- Minimale Menge an vorinstallierten Inhalten
- Keine ausfĂŒhrbaren Dateien mit suid
- Minimales Toolset fĂŒr den Paketmanager (Installation, Aktualisierung und Entfernung)
Plattform â fĂŒr alle Anwendungen, die auf RHEL ausgefĂŒhrt werden
- Vereinheitlichter kryptografischer OpenSSL-Stack
- VollstÀndiger YUM-Stack
- NĂŒtzliche grundlegende OS-Dienstprogramme sind enthalten (tar, gzip, vi usw.)
Multi-Service â vereinfacht das Starten mehrerer Dienste in einem Container
- FĂŒr den Start von systemd beim Booten konfiguriert
- Möglichkeit, Dienste wÀhrend des Build-Prozesses zu aktivieren
Container-Images mit bereits vorhandenen Laufzeitumgebungen fĂŒr Programmiersprachen
ZusĂ€tzlich zu den Basis-Images, die die UnterstĂŒtzung von Programmiersprachen ermöglichen, enthalten UBI vorgefertigte Images mit bereits vorhandenen Laufzeitumgebungen fĂŒr eine Reihe von Programmiersprachen. Viele Entwickler können einfach ein Image nehmen und sofort mit der Arbeit an der Anwendung beginnen, die sie entwickeln.
Mit der EinfĂŒhrung von UBI bietet Red Hat zwei Image-Sets an â basierend auf RHEL 7 und basierend auf RHEL 8. Diese basieren jeweils auf Red Hat Software Collections (RHEL 7) und Application Streams (RHEL 8). Diese Laufzeitumgebungen werden auf dem neuesten Stand gehalten und erhalten standardmĂ€Ăig bis zu vier Updates pro Jahr, sodass immer die Möglichkeit besteht, mit den aktuellsten und stabilsten Versionen zu arbeiten.
Hier ist eine Ăbersicht der UBI 7-Container-Images:

Hier ist eine Ăbersicht der UBI 8-Container-Images:

Assoziierte Pakete
Die Nutzung fertiger Images ist wirklich sehr praktisch. Red Hat hĂ€lt sie aktuell und aktualisiert sie mit NeueinfĂŒhrungen von RHEL sowie bei kritischen CVE-Updates gemÀà der Update-Politik. damit man eines dieser Images nehmen und sofort mit der Arbeit an der Anwendung beginnen kann.

Aber manchmal könnte es beim Erstellen einer Anwendung plötzlich erforderlich sein, ein zusĂ€tzliches Paket hinzuzufĂŒgen. Oder manchmal muss ein bestimmtes Paket aktualisiert werden, damit die Anwendung funktioniert. Aus diesem Grund werden UBI-Images mit einem Satz von RPMs geliefert, die ĂŒber yum verfĂŒgbar sind und ĂŒber ein schnelles und hochverfĂŒgbares Content Delivery Network bereitgestellt werden (holen Sie sich das Paket!). Wenn Sie zu einem kritischen Zeitpunkt im Release-Prozess ein yum-Update auf Ihrem CI/CD ausfĂŒhren, können Sie sicher sein, dass es funktioniert.
RHEL ist die Grundlage
Wir hören nicht auf zu betonen, dass RHEL die Grundlage von allem ist. Wissen Sie, welche Teams bei Red Hat an der Erstellung der Basis-Images arbeiten? Zum Beispiel diese:
- Das Ingenieure-Team, das dafĂŒr verantwortlich ist, dass Basisbibliotheken wie glibc und OpenSSL sowie Laufzeitumgebungen fĂŒr Sprachen wie Python und Ruby stabil arbeiten und zuverlĂ€ssig mit Workloads in Containern umgehen.
- Die Gruppe zur Sicherstellung der Produktsicherheit kĂŒmmert sich um die zeitnahe Behebung von Fehlern und Sicherheitsproblemen in Bibliotheken und Programmiersprachen. Die Effizienz ihrer Arbeit wird durch einen speziellen Index bewertet. .
- Das Team aus Produktmanagern und Ingenieuren arbeitet an der EinfĂŒhrung neuer Funktionen und sorgt fĂŒr einen langen Lebenszyklus des Produkts, was Vertrauen in die getĂ€tigten Investitionen schafft, die als Grundlage verwendet werden können.
Red Hat Enterprise Linux fungiert als hervorragender Host und Image fĂŒr Container. FĂŒr viele Entwickler ist jedoch die Möglichkeit wichtig, mit dem System in verschiedenen Formaten zu arbeiten, von denen einige ĂŒber die unterstĂŒtzten Nutzungsszenarien des Linux-Systems hinausgehen. Hier kommen die universellen UBI-Images ins Spiel.
Nehmen wir an, Sie suchen gerade nach einem Basis-Image, um mit der Entwicklung einer einfachen containerisierten Anwendung zu beginnen. Oder Sie haben bereits einen Schritt in die Zukunft gemacht und wechseln von unabhĂ€ngigen Containern, die auf einem Container-Engine laufen, zu einer cloud-nativen Lösung unter Verwendung von Operatoren (Building and certifying Operators), die auf OpenShift laufen. In jedem Fall bietet UBI eine hervorragende Grundlage dafĂŒr.

Container beinhalten eine abgespeckte Version des Benutzerraums des Betriebssystems in einem neuen Paketformat. Die Veröffentlichung von UBI-Images setzt einen neuen Branchenstandard fĂŒr die containerisierte Entwicklung, wobei Unternehmenscontainer fĂŒr alle Benutzer, unabhĂ€ngige Softwareentwickler und Open-Source-Communities zugĂ€nglich werden. Insbesondere können Softwareentwickler ihre Produkte standardisieren, indem sie eine einheitliche, geprĂŒfte Grundlage fĂŒr alle ihre containerisierten Anwendungen verwenden, darunter . Entwicklungsunternehmen, die UBI verwenden, haben auch Zugang zu Red Hat Container Certification und Red Hat OpenShift Operator Certification, was es ihnen ermöglicht, Software, die auf Plattformen von Red Hat, wie OpenShift, lĂ€uft, kontinuierlich zu verifizieren.

Wie man mit dem Image zu arbeiten beginnt
Kurz gesagt â sehr einfach. Podman ist nicht nur in RHEL verfĂŒgbar, sondern auch in Fedora, CentOS und einer Reihe anderer Linux-Distributionen. Alles, was Sie tun mĂŒssen, ist, das Image aus einem der folgenden Repositories herunterzuladen und loszulegen.
FĂŒr 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
FĂŒr 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
Und schauen Sie sich den vollstÀndigen Universal Base Image Guide an
Quelle: habr.com
