© Liashko/Shutterstock.com
Entwickler Magazin
Einstieg in die Linux-Distribution CoreOS

Containerorchestrierung

CoreOS ist eine Linux-Distribution, die speziell darauf ausgerichtet ist, Docker-Container in Produktion zu betreiben. Dieser Artikel gibt einen Überblick über die CoreOS-Tools. Darüber hinaus wird diskutiert, welche Konzepte man verwenden kann, um auch größere Anwendungen auf einem CoreOS-Cluster zu betreiben.

Timo Derstappen


Das Ökosystem rund um Docker ist im letzten Jahr förmlich explodiert. Viele neue Tools und Plattformen erleichtern nun den Umgang mit Containern für verschiedene Anwendungszwecke. Mit CoreOS entwickeln Alex Polvi und Brandon Philips eine spannende neue Linux-Distribution, welche darauf ausgerichtet ist, eine containerbasierte Cloud-Infrastruktur aufzubauen. Hierbei war eine erste Idee der beiden, ein Betriebssystem für Server zu entwickeln, das sich (ähnlich wie Chrome/ChromeOS) selbstständig aktualisiert. Davon versprachen sie sich im Ergebnis eine sicherere Infrastruktur für Webapplikationen, da das Basissystem ständig aktuell gehalten und die Software selbst in Containern isoliert wird. In diesem Artikel befasse ich mich jedoch vornehmlich mit dem Betrieb und der Verteilung von Containern auf CoreOS-Clustern.

Clustering

Beschäftigt man sich mit Docker, kommt sehr schnell die Frage auf, wie Docker auf mehreren Hosts funktioniert. Typische Anforderungen an Services wie Verfügbarkeit und Skalierbarkeit erfordern die Möglichkeit, Container über mehrere Hosts zu verteilen. Der Docker Daemon startet derzeit die Container nur auf seinem eigenen Host und auch Docker-Links, um verschiedene Docker-Container zu verbinden, funktionieren nur auf einem Host. CoreOS bringt dazu zwei wichtige Eigenentwicklungen mit: Etcd [1] und Fleet [2].

Etcd ist ein Key-Value Store, mit dem Fokus auf konsistenter Datenhaltung. Etcd läuft auf jedem Host im Cluster und „verbindet“ die Hosts untereinander. Dort befinden sich die Informationen über den Zustand des Clusters (also beispielsweise welche Hosts existieren, welche Services auf welchem Host laufen etc.). Damit sich die einzelnen Etcd Peers finden, gibt es einen Discovery-Service, der ein HTTP-API für die Peers bereitstellt, an der diese sich anmelden und über die anderen Peers informiert werden. Das Discovery-API kann selbst gehostet werden, oder man benutzt die offizielle Website von CoreOS [3].

Fleet benötigt Etcd und kümmert sich darum, Services auf den Hosts zu verteilen und zu überwachen. Dazu benutzt es Systemd, ein Init-System, welches sich mittlerweile in fast allen großen aktuellen Linux-Distributionen befindet. Die Services beschreibt man in Service-Units, die z. B. das zu startende Kommando und die Abhängigkeiten definieren. Fleet selbst erweitert die Systemd-Servicebeschreibungen um eine Sektion, in der man Einfluss auf die Verteilung der Services auf den Hosts im Cluster nehmen kann. Es kann beispielsweise bestimm...

Entwickler Magazin
Einstieg in die Linux-Distribution CoreOS

Containerorchestrierung

CoreOS ist eine Linux-Distribution, die speziell darauf ausgerichtet ist, Docker-Container in Produktion zu betreiben. Dieser Artikel gibt einen Überblick über die CoreOS-Tools. Darüber hinaus wird diskutiert, welche Konzepte man verwenden kann, um auch größere Anwendungen auf einem CoreOS-Cluster zu betreiben.

Timo Derstappen


Das Ökosystem rund um Docker ist im letzten Jahr förmlich explodiert. Viele neue Tools und Plattformen erleichtern nun den Umgang mit Containern für verschiedene Anwendungszwecke. Mit CoreOS entwickeln Alex Polvi und Brandon Philips eine spannende neue Linux-Distribution, welche darauf ausgerichtet ist, eine containerbasierte Cloud-Infrastruktur aufzubauen. Hierbei war eine erste Idee der beiden, ein Betriebssystem für Server zu entwickeln, das sich (ähnlich wie Chrome/ChromeOS) selbstständig aktualisiert. Davon versprachen sie sich im Ergebnis eine sicherere Infrastruktur für Webapplikationen, da das Basissystem ständig aktuell gehalten und die Software selbst in Containern isoliert wird. In diesem Artikel befasse ich mich jedoch vornehmlich mit dem Betrieb und der Verteilung von Containern auf CoreOS-Clustern.

Clustering

Beschäftigt man sich mit Docker, kommt sehr schnell die Frage auf, wie Docker auf mehreren Hosts funktioniert. Typische Anforderungen an Services wie Verfügbarkeit und Skalierbarkeit erfordern die Möglichkeit, Container über mehrere Hosts zu verteilen. Der Docker Daemon startet derzeit die Container nur auf seinem eigenen Host und auch Docker-Links, um verschiedene Docker-Container zu verbinden, funktionieren nur auf einem Host. CoreOS bringt dazu zwei wichtige Eigenentwicklungen mit: Etcd [1] und Fleet [2].

Etcd ist ein Key-Value Store, mit dem Fokus auf konsistenter Datenhaltung. Etcd läuft auf jedem Host im Cluster und „verbindet“ die Hosts untereinander. Dort befinden sich die Informationen über den Zustand des Clusters (also beispielsweise welche Hosts existieren, welche Services auf welchem Host laufen etc.). Damit sich die einzelnen Etcd Peers finden, gibt es einen Discovery-Service, der ein HTTP-API für die Peers bereitstellt, an der diese sich anmelden und über die anderen Peers informiert werden. Das Discovery-API kann selbst gehostet werden, oder man benutzt die offizielle Website von CoreOS [3].

Fleet benötigt Etcd und kümmert sich darum, Services auf den Hosts zu verteilen und zu überwachen. Dazu benutzt es Systemd, ein Init-System, welches sich mittlerweile in fast allen großen aktuellen Linux-Distributionen befindet. Die Services beschreibt man in Service-Units, die z. B. das zu startende Kommando und die Abhängigkeiten definieren. Fleet selbst erweitert die Systemd-Servicebeschreibungen um eine Sektion, in der man Einfluss auf die Verteilung der Services auf den Hosts im Cluster nehmen kann. Es kann beispielsweise bestimm...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang