kalafoto - stock.adobe.com
Das müssen Sie über Kubernetes CSI und dessen Nutzung wissen
Ein aktuelles CSI-konformes Plug-in von Kubernetes könnte den Prozess vereinfachen, containerisierte Workloads mit Speichersystemen zu verbinden.
Kubernetes CSI ist eine Implementierung der Container-Storage-Interface-Spezifikation, die einen standardisierten Mechanismus für die Verbindung zwischen Container-Orchestrierungswerkzeugen und Speichersystemen bietet.
Bei diesem Modell enthält das CO-Tool ein CSI-konformes Plug-in, das als Schnittstelle zwischen den containerisierten Workloads und dem Speichersystem von Drittanbietern dient. Diese Speichersysteme umfassen Datei-, Block- und Cloud-Speicherumgebungen.
Um den Prozess zu erleichtern, muss der Storage-Anbieter einen CSI-konformen Volume-Treiber bereitstellen, der mit dem CO-Plug-in interagiert. Zusammen ermöglichen der Treiber und das Plug-in den containerisierten Workloads die Unterstützung von Operationen wie das Hinzufügen oder Entfernen von Volumes, das Einfügen und Entfernen von Volumes sowie das dynamische Bereitstellen oder Entfernen von Volumes. Da die CSI-Spezifikation die Schnittstelle standardisiert, muss ein Hersteller nur einen Treiber entwickeln, der mit jedem CSI-konformen CO-Plug-in funktioniert.
Frühere Kubernetes-Plug-ins
Kubernetes bietet jetzt ein CSI-konformes Plug-in an, das persistente Speicherung für containerisierte Workloads ermöglicht, ohne viele der Probleme, die früher durch die Integration von Storage in die Kubernetes-Umgebung verursacht wurden. Vor der Kubernetes CSI-Initiative vertrauten Storage-Anbieter oft auf Kubernetes In-Tree Volume Plug-ins, um die Storage-Konnektivität zu erleichtern. Der In-Tree-Aspekt bedeutete, dass sie in das zentrale Kubernetes-Repository integriert wurden, was eine Reihe von Herausforderungen mit sich brachte.
Wenn ein Anbieter sein Speichersystem in die Kubernetes-Umgebung integrieren wollte, musste er ein Volume-Plug-in entwickeln und es in die Kubernetes-Codebasis aufnehmen. Die Plug-in-Wartung war eng mit den Kubernetes-Versionen verbunden, und das Plug-in hatte umfangreiche Privilegien gegenüber Kubernetes-Komponenten. Ein Fehler im Plug-in könnte kritische Komponenten zum Erliegen bringen. Darüber hinaus musste der Speicherhersteller den Quellcode des Plug-ins im Rahmen des Kubernetes-Projekts der Öffentlichkeit zugänglich machen.
Kubernetes entwickelte dann das FlexVolume-Plug-in, das eine API für die Ausführung von Operationen wie das Mounten, De-Mounten, Anhängen und Entfernen von Volumes bereitstellte. Leider hatte auch das FlexVolume Plug-in seine Grenzen. Obwohl es Drittanbieter-Treiber für Out-of-Tree Volumes unterstützte, benötigte es dennoch Zugriff auf die Root-Dateisysteme auf der Node und den Master-Maschinen und verfügte über eine Reihe von Systemabhängigkeiten.
Kubernetes CSI erleichtert den Prozess
Das neue Kubernetes CSI Volume Plug-in hilft, diese Probleme zu lösen und die Treiberentwicklung zu vereinfachen. Wie die traditionellen Volume-Plug-ins ist auch das CSI-Plug-in eine In-Tree-Komponente, die in die Codebasis integriert ist. Im Gegensatz zu den älteren Modellen erweitert das CSI-Volumen-Plugin jedoch containerisierte Operationen außerhalb der Kubernetes-Umgebung, ohne die Einschränkungen des FlexVolume Plug-ins.
Das CSI-Volume-Plug-in fungiert als standardisierter Adapter für die Kubernetes-Umgebung und bietet eine API für die Interaktion mit externen CSI-konformen Volume-Treibern. Das Plug-in ermöglicht es Kubernetes, Master- und Node-Komponenten, Out-of-Tree Volume-Treiber zu entdecken und zu registrieren, die in der Kubernetes-Umgebung eingesetzt werden. Das Plug-in kann auch eine sichere Kommunikation mit diesen Treibern einleiten, um den containerisierten Workloads persistenten Speicherplatz zu bieten.
Storage-Anbieter können nun CSI-Volumentreiber für die Bereitstellung in der Kubernetes-Umgebung erstellen, ohne sich um Kubernetes-Implementierungsdetails kümmern zu müssen, wie sie es in der Vergangenheit getan haben. Kubernetes stellt relativ wenige Anforderungen an die Implementierung ihrer Treiber durch die Anbieter, sofern sie sich an den CSI-Standard halten. Auf diese Weise haben die Anbieter viel mehr Flexibilität bei der Integration ihrer Speichersysteme in die Kubernetes-Umgebung sowie in andere CO-Umgebungen.