CoreOS | |
Projekt-Status | In Entwicklung |
---|---|
Plattformen | x86-64 |
Firma / Entwickler |
roter Hut |
Lizenz | Apache License 2.0 |
Webseite | https://coreos.com/os/docs/latest/ |
Container Linux (ehemals CoreOS Linux ) ist ein Open-Source- Betriebssystem , das auf dem Linux-Kernel basiert und Infrastruktur für Clusterbereitstellungen bereitstellt. Dabei stehen Automatisierung, einfache Anwendungsbereitstellung, Sicherheit, Zuverlässigkeit und Skalierbarkeit im Vordergrund . Als Betriebssystem bietet Container Linux nur die Mindestfunktionen, die zum Bereitstellen von Anwendungen in Software-Containern erforderlich sind, sowie integrierte Mechanismen für die Diensterkennung und die gemeinsame Nutzung von Konfigurationen.
Container Linux teilt die Grundlagen mit Gentoo Linux , Chrome OS und Chromium OS über ein gemeinsames Software Development Kit (SDK). Container Linux fügt dieser gemeinsam genutzten Grundlage neue Funktionen und Anpassungen hinzu, um zusätzliche Hardware und Anwendungsfälle zu unterstützen. Zu Beginn des Jahres 2015 wird CoreOS hauptsächlich von Alex Polvi, Brandon Philips und Michael Marineau aktiv entwickelt. Die Hauptfunktionen sind in einer stabilen Version verfügbar.
Container Linux bietet keinen Paketmanager zum Verteilen von Anwendungen, sondern erfordert, dass alle Anwendungen in ihren Containern ausgeführt werden. Eine Container-Linux-Instanz dient als einzelner Steuerungshost und verwendet die zugrunde liegenden Virtualisierungsfunktionen auf der Ebene des Linux-Kernel-Betriebssystems, um mehrere Container zu erstellen und zu konfigurieren, die als isolierte Linux- Systeme fungieren . Auf diese Weise erfolgt die Aufteilung der Ressourcen zwischen Containern über mehrere isolierte Benutzerbereichsinstanzen , anstatt einen Hypervisor zu verwenden und vollwertige virtuelle Maschinen bereitzustellen . Dieser Ansatz basiert auf der Funktionalität der cgroups und Namespaces des Linux-Kernels, die zusammen Funktionen zum Begrenzen, Berücksichtigen und Isolieren der Verwendung von Ressourcen ( CPU , Speicher, Festplatten- E / A usw.) für User-Space- Prozesssammlungen bieten .
Anfänglich verwendete Container Linux Docker ausschließlich als Komponente, die eine zusätzliche Abstraktionsebene und Schnittstelle zur Virtualisierungsfunktionalität auf Linux-Kernel-Betriebssystemebene sowie ein standardisiertes Format für Container bereitstellt, mit dem Anwendungen in verschiedenen Umgebungen ausgeführt werden können. Im Dezember 2014 veröffentlichten CoreOS und begannen zu Unterstützung rkt (ursprünglich erschienen als Rakete ) als Alternative zu Docker, durch sie ein weiteres standardisiertes Format für die Anwendung Container Bilder bereitgestellt, die Definition der Container - Laufzeitumgebung und eine Behälter Bild Entdeckung und Retrieval - Protokoll . CoreOS bietet rkt als Implementierung der sogenannten Application Container (Appc) -Spezifikation an, die die erforderlichen Eigenschaften des Application Container Image (ACI) beschreibt. CoreOS hat Appc und ACI als eine Reihe unabhängiger Spezifikationen eingeführt, die von einem Komitee - einem unabhängigen Komitee von Betriebssystemanbietern - geleitet werden, um sie in die Open Container Initiative (OCI) zu integrieren. ursprünglich Open Container Project oder OCP genannt)
Der Containerisierungsstandard wurde Im Juni 2015 angekündigt .
Container Linux verwendet Gentoo Linux ebuild Skripte für die automatisierte Erstellung von Systemkomponenten und Anwendungen systemd als Haupt Boot - System mit enger Integration zwischen systemd und verschiedenen internen Mechanismen der Container Linux.
Container Linux bietet etcd, einen Daemon, der auf allen Computern in einem Cluster ausgeführt wird und eine dynamische Konfigurationsregistrierung bereitstellt, mit der verschiedene Konfigurationsdaten einfach und zuverlässig von Clustermitgliedern gemeinsam genutzt werden können. Da die Schlüsselwertdaten in gespeicherten ETCD automatisch verteilt und repliziert mit einem automatisierten Master Wahl und Konsensbildung unter Verwendung der Raft - Algorithmus , alle Änderungen an den gespeicherten Daten werden auf dem ‚gesamten Cluster reflektiert, während die sich ergebende Redundanz verhindert Element Ausfälle Clusters aus Verursachung Datenverlust. Zusätzlich zum Konfigurationsmanagement bietet etcd auch die Serviceerkennung, indem bereitgestellte Anwendungen sich selbst bewerben und die von ihnen angebotenen Services auflisten können . Die Kommunikation mit etcd erfolgt über eine REST- API, die über HTTP verfügbar gemacht wird und in JSON kommuniziert . Die API kann direkt ( z. B. über curl oder wget ) oder indirekt von etcdctl verwendet werden , einem speziellen Befehlszeilenprogramm, das auch von CoreOS bereitgestellt wird. . Etcd wird auch in der Kubernetes- Software verwendet .
Container Linux bietet auch einen Flottencluster- Manager, der separate Systeminstanzen von Container Linux steuert. Seit 2017 ist die Flotte nicht mehr aktiv entwickelt und wird zugunsten von Kubernetes abgelehnt . Unter Verwendung von Fleetd erstellt Container Linux ein verteiltes Boot- System, das separate Systemd-Instanzen mit einem implementierungsweiten etcd verbindet . Intern kommuniziert der Fleetd- Daemon über den D-Bus mit dem lokalen Systemd und mit der Bereitstellung etcd über die von etcd bereitgestellte API . Die Verwendung von Fleetd ermöglicht die Bereitstellung eines oder mehrerer Container im gesamten Cluster mit erweiterten Optionen, einschließlich Redundanz, Failover , Bereitstellung für bestimmte Clustermitglieder, Abhängigkeiten zwischen Containern und gruppierter Bereitstellung von Containern. Ein Befehlszeilenprogramm namens Flectctl wird zum Konfigurieren und Überwachen dieses verteilten Boot-Systems verwendet. Intern kommuniziert es mit dem Fleetd- Daemon über eine JSON-basierte API über HTTP. Diese API kann auch direkt verwendet werden. Bei lokaler Verwendung auf einem Cluster-Mitglied kommuniziert Flectctl mit der lokalen Instanz von Fleetd auf einem Unix-Domain-Socket . Bei Remote-Verwendung wird SSH-Tunneling mit Authentifizierung verwendet, die über öffentliche SSH-Schlüssel bereitgestellt wird .
Alle oben genannten Befehlszeilendämonen und Dienstprogramme ( etcd , etcdctl , Fleetd und Flectctl ) sind in GB geschrieben und werden unter den Bedingungen der Apache 2.0-Lizenz verteilt.
Wenn Container Linux auf dedizierter Hardware ausgeführt wird, kann es dauerhaft auf einem lokalen Speicher installiert werden, z. B. auf einem Festplattenlaufwerk (HDD) oder einem Solid-State- Laufwerk, oder über ein Netzwerk mithilfe der Preboot Execution Environment (PXE) im Allgemeinen oder iPXE remote gestartet werden als eine der Implementierungen von PXE. CoreOS unterstützt auch Bereitstellungen auf verschiedenen Virtualisierungsplattformen, darunter Amazon EC2 , DigitalOcean, Google Compute Engine, Microsoft Azure , OpenStack , QEMU / KVM , Vagrant und VMware . Container Linux kann auch auf Citrix XenServer installiert werden, wobei zu beachten ist, dass es eine "Vorlage" für CoreOS gibt.
Container Linux kann auch über die kommerzielle Distribution Tectonic bereitgestellt werden , die in Google Kubernetes als Dienstprogramm zur Clusterverwaltung integriert ist. Im April 2015 wurde Tectonic als Beta-Software für ausgewählte Kunden angeboten. Darüber hinaus bietet CoreOS Flannel als Komponente zur Implementierung eines Overlay-Netzwerks, das hauptsächlich für die Integration in Kubernetes erforderlich ist.
Nach der Übernahme von CoreOS, Inc. im Januar 2018 gab Red Hat bekannt, dass CoreOS Container Linux mit dem Atomic Project von Red Hat zusammengeführt wird, um ein neues Betriebssystem, Red Hat CoreOS, zu erstellen und gleichzeitig das Open-Source-Fedora-Projekt der Community auf Fedora CoreOS auszurichten und kombiniert die Technologien der beiden Vorgänger.
LWN.net überprüfte CoreOS im Jahr 2014: „ Für diejenigen, die große, verteilte Systeme zusammenstellen - Webanwendungen sind ein Paradebeispiel -, scheint CoreOS viele interessante Funktionen zu haben. Es sollte Anwendungen dieses Typs ermöglichen, je nach Bedarf zu wachsen und zu schrumpfen, und eine stabile Plattform bieten, auf der Upgrades keine ständigen Kopfschmerzen verursachen. Bei "massiven Serverbereitstellungen" sieht CoreOS oder etwas mit vielen der gleichen Eigenschaften wie die Zukunft aus. ""