kalafoto - Fotolia
So erstellen Sie mit Rook containerisiertes SDS in Kubernetes
Rook nutzt die Prinzipien der Containerisierung und die in Kubernetes verwendeten Methoden, um Speicher zu bauen, die von der Hardware abstrahiert sind, die dieser nutzt.
Die Containerisierung durchzieht die IT, und es ist die Abstraktion, die den Reiz ausmacht. Mit anderen Worten, die Verwendung von Containern entkoppelt die Anwendung von der für ihren Betrieb erforderlichen Infrastruktur.
Natürlich braucht Software Hardware, aber mit Containern – über einen Container-Orchestrator wie Kubernetes – können Sie eine dynamische Umgebung aufbauen, in der Anwendungen vor Ort oder in der Cloud ausgeführt werden können. Die Container und ihr Orchestrator enthalten alles, was zur schnellen Erstellung, Verwaltung, Skalierung und Außerbetriebnahme von Anwendungen durch Automatisierung erforderlich ist.
Wir haben uns an anderer Stelle mit den Grundlagen der Speicherung in Kubernetes befasst. Hier werden wir uns eine andere Methode ansehen, nämlich die Verwendung von Rook, die die Möglichkeit bietet, Speicherpools innerhalb des Kubernetes-Clusters zu erstellen.
Rook – zum Zeitpunkt der Abfassung dieses Artikels in der Version 1.2 – läuft im Kubernetes-Cluster und exponiert und orchestriert persistenten Speicher über eine Reihe von Speichertypen hinweg.
Rook zielt nicht darauf ab, mit den Arrays der Hersteller von Mainstream-Speicherhardware oder mit dem Speicher der Cloud-Anbieter zu spielen. Es könnte theoretisch jede beliebige Array-Kapazität als Speicher verwenden, aber das ist nicht der eigentliche Sinn der Sache. Es gäbe nichts zu gewinnen, wenn Sie Geld für ein Speicher-Array ausgeben würden, bei dem Sie für den Mehrwert bezahlen, den der Controller bietet, wenn Rook diese Funktionalität bereitstellt.
Stattdessen ist Rook im Wesentlichen eine softwaredefinierte, containerisierte Speicherlösung, die darauf abzielt, hyperkonvergenten – alle im selben Knoten – oder hyperskalierten Speicher bereitzustellen.
Rook wurde ursprünglich als eine Möglichkeit zur Containerisierung und Verwaltung von Ceph, dem Open-Source-Block-, Datei- und Objekt-SDS (Software-defined Storage) von Red Hat (2019 von IBM übernommen), entwickelt. Er kann aber auch zur Containerisierung von Speichertypen verwendet werden, zu denen EdgeFS gehört, ein globales Dateisystem, das auf Objektspeicher basiert, aber mit Datei-, Block- und Amazon Simple Storage Service (S3)-Zugriffsmethoden ausgestattet ist.
Der Zugriff auf NFS-Speicherserver (Network File System) ist ebenso möglich wie die Verwendung des S3-kompatiblen MinIO-Objektspeicherservers.
Rook unterstützt auch den Zugriff auf Datendienste, darunter die Apache Cassandra NoSQL-Datenbank und die verteilten Cloud-nativen SQL-Datenbanken CockroachDB und YugabyteDB. Rook steht jetzt unter der Schirmherrschaft der CNCF (Cloud Native Commputing Foundation) und wird als „Inkubationsprojekt“ eingestuft.
Rook legt den ausgewählten Speicher (gruppiert nach Speicherklasse und referenzierenden PVCs – Persistent Volume Claims) in Containern ab und stellt dafür das Cluster-Management bereit, wobei Aufgaben wie Planung, Bereitstellung, Bootstrapping, Konfiguration, Skalierung, Load Balancing und Disaster Recovery automatisiert werden.
Der Schlüssel zu den Rook-Operationen ist ein Kubernetes-Operator, der die Ressourcen überwacht, um sicherzustellen, dass der Speicher entsprechend den Anforderungen der Speicherklasse ausgeführt wird, und der das Booten, Heilen, Klonen und Verwalten des Speichers übernimmt, um dies zu gewährleisten.
Der Start von Rook in einem Cluster kann je nach Speicheranbieter mit einigen wenigen Kubectl-Befehlen beginnen.
Die potenziellen Vorteile von Rook
Rook ist im Wesentlichen softwaredefinierter Speicher, was bedeutet, dass Entwickler Speicherressourcen programmierbar machen können. Kurz gesagt, es ermöglicht die Erstellung von Speicherpools aus einer Reihe von Speichertypen und ermöglicht theoretisch die Portabilität der Nutzung von Speicherressourcen über eine Reihe von Vor-Ort- und Cloud-Standorten hinweg – obwohl die Unterstützung für Speichertypen und Anbieter noch nicht annähernd universell ist.
Jeder, der sich ernsthaft mit der Containerisierung befasst, wird die Vorteile der Containerisierung potenziell disparater Speicherinstanzen in softwaredefinierte Pools mit Rook erkennen.
Damit verbunden ist die Fähigkeit, Speicher horizontal und vertikal zu skalieren, mit schnellerer und automatischer Bereitstellung von Volumes für Pods, automatischer Heilung von ausgefallenen oder beschädigten Festplatten, schneller automatischer Bereitstellung und besserer Nutzung von Ressourcen.
Mögliche Nachteile und Einschränkungen
In Bezug auf die Arbeitsbelastung gibt es keine Einschränkungen, denn wo immer Container eingesetzt werden können, ist Rook theoretisch gut geeignet. Wenn Sie die Verarbeitung Ihrer Daten in Containern durchführen möchten, dann sollte auch die Verwaltung ihrer Speicherung für Sie in Ordnung sein.
Das größte Handicap für potenzielle Rook-Benutzer ist derzeit, dass es noch in den Kinderschuhen steckt. Die Containerisierung ist noch nicht allgegenwärtig, und auch das Verständnis dafür, wie und ob Organisationen sie nutzen sollten, ist noch nicht flächendeckend in den Rechenzentren vorhanden.
Und Rook selbst steckt noch in den Anfängen, mit einigen Anwendern, aber einer unvollständigen Liste der unterstützten Speichertypen. Nichtsdestotrotz ist es eine Idee, die absolut sinnvoll ist, daher werden wir dieses Thema mit Interesse verfolgen.