CoreOS

CoreOS
Logo
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.

Überblick

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.

Cluster-Infrastruktur

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.

Einsatz

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.

Technologien

Derivate

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.

Zuhause

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.  ""

Siehe auch

Verweise

  1. „  CoreOS Linux ist jetzt Container Linux  “ , coreos.com (abgerufen am 20. Dezember 2016 )
  2. Libby Clark, "  Brandon Philips: Wie die CoreOS Linux-Distribution Cgroups verwendet  " [ Archiv von22. Februar 2014] , Linux.com ,9. September 2013(abgerufen am 13. Februar 2014 )
  3. „  CoreOS - ein neuer Ansatz für Linux-basierte Serversysteme  “ , itnews2day.com ,22. August 2013(abgerufen am 26. März 2014 )
  4. „  CoreOS-Dokumentation: Verwenden von CoreOS  “ , coreos.com (abgerufen am 13. Februar 2014 )
  5. "  Gebäudeentwicklungsbilder: Aktualisieren portage-stabiler Ebuilds von Gentoo  " , coreos.com (abgerufen am 24. Mai 2016 )
  6. „  Distributionen basierend auf Gentoo  “ , gentoo.org ,25. März 2016(abgerufen am 24. Mai 2016 )
  7. Brian Harrington, „  CoreOS: Anatomie eines CoreOS-Updates  “ , youtube.com , Rackspace,8. Juli 2014(abgerufen am 25. Juli 2014 )
  8. Alex Polvi, „  CoreOS Stable Release  “ , coreos.com ,25. Juli 2014(abgerufen am 28. August 2014 )
  9. "  CoreOS- Versionshinweise  " , coreos.com (abgerufen am 28. August 2014 )
  10. Brandon Philips, "  etcd 2.0 Release - Erste große stabile Version  " , coreos.com ,28. Januar 2015(abgerufen am 14. Juni 2015 )
  11. Jonathan Corbet, "  Notizen aus einem Container  " , LWN.net ,29. Oktober 2007(abgerufen am 3. Juli 2016 )
  12. Jake Edge, „  Kontrollgruppennamensräume  “ , LWN.net ,19. November 2014(abgerufen am 3. Juli 2016 )
  13. Libby Clark, "  Brandon Philips: Wie die CoreOS Linux Distribution cgroups verwendet  " [ Archiv22. Februar 2014] , Linux.com ,9. September 2013(abgerufen am 13. Februar 2014 )
  14. „  CoreOS-Dokumentation: Verwenden von Docker mit CoreOS  “ [ Archiv von4. August 2016] , coreos.com (abgerufen am 14. Juni 2015 )
  15. „  Docker 0.9: Einführung von Ausführungstreibern und libcontainer  “ , docker.com ,10. März 2014(abgerufen am 20. Januar 2015 )
  16. Libby Clark, „  CoreOS-Mitbegründer Alex Polvi spricht über Container, Rocket vs. Docker und mehr  “ , Linux.com ,30. Januar 2015(abgerufen am 14. Juni 2015 )
  17. Charles Babcock, "  Raketencontainer: Wie CoreOS Docker herausfordern will  " , informationweek.com ,20. Februar 2015(abgerufen am 14. Juni 2015 )
  18. Alex Polvi, „  CoreOS erstellt eine Container-Laufzeit, rkt  “ , coreos.com ,1 st Dezember 2014(abgerufen am 14. Juni 2015 )
  19. Josh Berkus, „  Neue Versionen von etcd, appc und Rocket von CoreOS  “ , LWN.net ,4. Februar 2015(abgerufen am 22. Juni 2015 )
  20. Josh Berkus, „  CoreOS Fest und die Welt der Container, Teil 1  “ , LWN.net ,13. Mai 2015(abgerufen am 22. Juni 2015 )
  21. Nathan Willis, "  The Rocket Containerization System  " , LWN.net ,3. Dezember 2014(abgerufen am 22. Juni 2015 )
  22. (in) Neil McAllister , Docker und Freunde enthüllen Organisationsstandards für Software-Container  " , The Register , 22. Juni 2015( online lesen , konsultiert am 19. Januar 2017 )
  23. (in) Frederic Lardinois , "  Docker CoreOS, Google, Microsoft, Amazon und andere kommen zusammen, um einen gemeinsamen Standardcontainer zu entwickeln  " , TechCrunch ,22. Juni 2015( online lesen , konsultiert am 24. Juni 2015 )
  24. "  Branchenführer schließen sich zusammen, um Projekt für Open Container Standards zu erstellen  " [ Archiv von13. August 2015] , opencontainers.org ,22. Juni 2015(Zugriff auf den 24. Juni 2015 )
  25. Neil McAllister, „  Open Container Project wird umbenannt, sagt, dass der Standard nur noch wenige Wochen entfernt ist: Linux Foundation, Docker und Freunde entscheiden sich für Open Container Initiative  “ , The Register ,22. Juli 2015(abgerufen am 29. Januar 2016 )
  26. "  CoreOS-Dokumentation: Verwenden von systemd mit CoreOS  " [ Archiv von14. Februar 2014] , coreos.com (abgerufen am 13. Februar 2014 )
  27. Mark Moudy, „  Demo zur CoreOS + Docker-Entwicklungsumgebung  “ , github.com ,16. Mai 2014(abgerufen am 16. April 2015 )
  28. Timothy Prickett Morgan, "  CoreOS Hyperscales Linux, indem es unsichtbar gemacht wird  " , nextplatform.com ,15. Februar 2015(abgerufen am 14. Juni 2015 )
  29. Phil Whelan, "  Alex Polvi erklärt CoreOS  " [ Archiv von24. Februar 2015] , activestate.com ,28. August 2013(abgerufen am 7. Mai 2015 )
  30. Jonathan Corbet, "  Etcd und Flotte  " , LWN.net ,22. Oktober 2014(abgerufen am 22. Juni 2015 )
  31. "  CoreOS-Dokumentation: Verwenden von etcd mit CoreOS  " , coreos.com (abgerufen am 13. Februar 2014 )
  32. "  CoreOS-Dokumentation: Erste Schritte mit etcd  " , coreos.com (abgerufen am 13. Februar 2014 )
  33. Brandon Philips, "  etcd @ GoSF  " , Speakerdeck.com ,15. Januar 2014(abgerufen am 13. Februar 2014 )
  34. Wood, „  Container-Orchestrierung: Übergang von der Flotte zu Kubernetes  “ , coreos..com , CoreOS
  35. Justin Ellingwood, „  So verwenden Sie Fleet und Fleetctl zur Verwaltung Ihres CoreOS-Clusters  “ , digitalocean.com ,12. September 2014(abgerufen am 22. Juni 2015 )
  36. „  CoreOS-Dokumentation: Starten von Containern mit Flotte  “ , coreos.com (abgerufen am 3. April 2014 )
  37. „  CoreOS-Dokumentation: Verwenden des Clients  “ , coreos.com (abgerufen am 3. April 2014 )
  38. "  Coreos / Flotte: Flotte / README.md bei Master  " , github.com ,18. Februar 2014(abgerufen am 3. April 2014 )
  39. "  Coreos / Flotte: Flotte / Dokumentation / Bereitstellung- und Konfiguration.md am Master (Bereitstellung der Flotte)  " , github.com ,14. April 2015(abgerufen am 17. April 2015 )
  40. "  Coreos / Flotte: Flotte / Dokumentation / api-v1.md (Flotten-API v1)  " , github.com ,29. Oktober 2014(abgerufen am 17. April 2015 )
  41. Coreos / Flotte: Flotte / LIZENZ beim Master  " , github.com , 6. Februar 2014(abgerufen am 3. April 2014 )
  42. "  CoreOS-Dokumentation: CoreOS auf Festplatte installieren  " , coreos.com (abgerufen am 13. Februar 2014 )
  43. "  CoreOS-Dokumentation: Booten von CoreOS über PXE  " , coreos.com (abgerufen am 13. Februar 2014 )
  44. "  CoreOS-Dokumentation: Starten von CoreOS über iPXE  " , coreos.com (abgerufen am 13. Februar 2014 )
  45. Alex Crawford, „  CoreOS-Image jetzt auf DigitalOcean verfügbar  “ , coreos.com ,5. September 2014(abgerufen am 5. September 2014 )
  46. Jack Clark, "  Google bringt futuristische Linux-Software CoreOS in seine Cloud  " , The Register ,23. Mai 2014(abgerufen am 26. Mai 2014 )
  47. Alex Crawford, "  CoreOS jetzt auf Microsoft Azure verfügbar  " , coreos.com ,20. Oktober 2014(abgerufen am 22. Oktober 2014 )
  48. (de) Von Steven J. Vaughan-Nichols , "  CoreOS bringt Googles Kubernetes in das Unternehmen  " , ZDNet ,6. April 2015( online lesen , konsultiert am 29. April 2015 )
  49. Eugene Yakubovich, „  Einführung von Flanell: Ein von etcd unterstütztes Overlay-Netzwerk für Container  “ , coreos.com ,28. August 2014(abgerufen am 22. Juni 2015 )
  50. "  Tutorial zur Verwendung von CoreOS Flannel für Docker  " , slidehare.net ,November 2014(abgerufen am 22. Juni 2015 )
  51. "  Die beste Container-Orchestrierungslösung in der Produktion  " auf kubernetes.io (abgerufen am 3. Februar 2020 ) .
  52. "  Container, Docker, wie es funktioniert und welche Vorteile bietet es, Ihre Anwendungen zu hosten?" - Alfa-Sicherheit  “ (abgerufen am 3. Februar 2020 ) .
  53. "  Erstellen und Bereitstellen Ihrer Anwendungen mit OpenShift  " auf Nexworld ,15. September 2017(abgerufen am 3. Februar 2020 ) .
  54. (in) Rosoff, "  Red Hat Land 250 Millionen US-Dollar für CoreOS hat Startups, die von Google entwickelte Technologie verkaufen  " , CNBC ,30. Januar 2018(abgerufen am 6. Juni 2019 )
  55. “  Fedora CoreOS, Red Hat CoreOS und die Zukunft von Container Linux | CoreOS  ” , coreos.com (abgerufen am 6. Juni 2019 )
  56. CoreOS: Eine andere Art von Linux-Distribution , LWN.net .

Externe Links