© Creaturart Images/Shutterstock.com
Tutorial: CrateDB-Cluster mit Kubernetes aufsetzen

Schritt für Schritt


Dank ihrer horizontal skalierbaren Shared-Nothing-Architektur eignet sich die Datenbank CrateDB sehr gut, um mit Containertechnologien wie Docker zu arbeiten. Im praktischen Leben erweist es sich zumeist als sinnvoll, Docker um eine Containerorchestrierungslösung zu ergänzen – einfach weil die Anzahl der Container schnell wächst und Runtime-Abhängigkeiten untereinander entstehen, die aufeinander abgestimmt werden müssen. Eine dieser Lösungen ist Kubernetes.

Kubernetes ist ein Open-Source-Werkzeug mit großer, aktiver Community und namhaften Unterstützern. Einen CrateDB-Cluster mit Kubernetes aufzusetzen, ist in wenigen Schritten machbar. Scale-out und Scale-in sind unkompliziert, was den Cluster besonders flexibel macht.

Kubernetes: von Pods, Controllern und Services

Hinter dem Begriff Containerorchestrierung stecken das Management, das Deployment und die Skalierung von containerisierten Systemen. Im Prinzip ist Kubernetes ein System von Prozessen, die verteilt über alle zum Kubernetes-Cluster gehörenden Nodes laufen. Mindestens ein Knoten muss dabei als Master fungieren, die Anzahl der Slaves ist beliebig. Die Container, die die zu deployende Software zum Laufen bringen, werden dann intelligent auf alle Kubernetes Nodes verteilt. Je nach Funktion des jeweiligen Servers laufen unterschiedliche Komponenten von Kubernetes [1] darauf. So entstehen praktisch diverse Instanzen dieser Komponenten, die sich über mehrere Maschinen hinweg koordinieren. Um den Zustand eines Kubernetes-Clusters zu definieren, sind vor allem drei Konzepte von Bedeutung: Pods, Controller und Services.

Ein Pod repräsentiert eine einzelne Recheneinheit und damit den grundlegenden Baustein jedes Systems. Das kann ein einzelner Container sein oder mehrere eng miteinander verbundene. Wird beispielsweise eine Webapplikation deployt, führt ein Pod eine einzelne Instanz der Anwendung aus. Pods lassen sich horizontal skalieren, indem zum Beispiel Replica Pods hinzugefügt oder – bei einem Scale-in – entsprechend entfernt werden. Komplexere Anwendungen benötigen oft mehr als einen Container. Alle Container in einem Pod teilen sich eine gemeinsame Netzwerkschnittstelle, und jeder Container hat Zugriff auf die dem Pod zugeordneten Speichervolumen. Das offizielle CrateDB Docker Image [2] eignet sich sehr gut als Single-Container-Pod, aus einer Kombination von mehreren kann ein CrateDB-Cluster beliebiger Größe entstehen.

Pods werden normalerweise nicht von Hand erstellt, sondern Controller kreieren ...

Neugierig geworden?

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