Kubernetes im Luftspiegel: So starten Sie einen Cluster ohne Internet
Erfahren Sie, wie Sie Kubernetes in luftdicht abgeschotteten Umgebungen erfolgreich bereitstellen können.
Ever wonder how software gets deployed onto a system that is deliberately disconnected from the Internet and other networks? Diese Systeme sind oft aufgrund ihrer sensiblen Natur vom Internet getrennt. Dazu zählen beispielsweise Versorgungsunternehmen (Strom/Wasser), Banken, das Gesundheitswesen, Waffensysteme und andere staatliche Anwendungen. Manchmal handelt es sich sogar um einen Wassergraben, wenn Sie Kubernetes auf einem Unterwasserfahrzeug betreiben. Dennoch müssen diese Umgebungen mit Software betrieben werden. Dieses Konzept der Bereitstellung in einem abgeschotteten Zustand beschreibt, was es bedeutet, auf die andere Seite eines Luftspiegels zu deployen.
Trotz dieser Trennung muss Software in diesen Umgebungen laufen. Traditionell werden Software-Artefakte physisch über den Luftspiegel hinweg auf Festplatten, USB-Sticks, CDs oder sogar Disketten (für alte Systeme) transportiert. Kubernetes eignet sich besonders gut für den Betrieb von Software hinter einem Luftspiegel, und das aus mehreren Gründen, vor allem wegen seiner deklarativen Natur.
In diesem Blogartikel werde ich den Prozess des Bootstrappings eines Kubernetes-Clusters in einer luftdicht abgeschotteten Laborumgebung mit Fedora Linux und kubeadm durchgehen.
Die Einrichtung der Air Gap VM
Ein echtes luftdicht abgeschottetes Netzwerk kann einige Mühe kosten, also werde ich für diesen Beitrag ein Beispiel-VM auf einem Laptop verwenden und einige Netzwerkänderungen vornehmen. Nachfolgend sehen Sie die Topologie:
Lokale Topologie
Diese VM wird ihre Netzwerkverbindung deaktiviert haben, jedoch so, dass die virtuelle Netzwerkkarte der VM nicht abgeschaltet wird. Stattdessen wird das Netzwerk durch das Einfügen einer Standardroute zu einer Dummy-Schnittstelle deaktiviert, wodurch alles, was internetbasiert ist, unerreichbar wird. Die VM hat jedoch immer noch eine verbundene Route zur Brückenschnittstelle auf dem Host, was bedeutet, dass die Netzwerkverbindung zum Host weiterhin funktioniert. Diese Konfiguration ermöglicht es, Daten von der Host-/Laptop-Umgebung zur VM über scp
zu übertragen, selbst wenn die Standardroute auf der VM alle Verkehrsdaten, die nicht für das lokale Brückensubnetz bestimmt sind, blockiert. Diese Art der Übertragung ist analog zum Tragen von Daten über den Luftspiegel und wird in diesem Beitrag verwendet.
Weitere Details zur Laboranordnung:
VM-Betriebssystem: Fedora 37
Kubernetes-Version: v1.27.3
CNI-Plugins-Version: v1.3.0
CNI-Anbieter und Version: Flannel v0.22.0
Obwohl dieses einfache VM-Labor ein vereinfachtes Beispiel darstellt, zeigt das Diagramm unten, wie eine echte luftdicht abgeschottete Umgebung aussehen könnte:
Bitte beachten Sie, dass es immer noch eine beabsichtigte Isolation zwischen der Umgebung und dem Internet gibt. Es gibt auch einige Dinge, die nicht gezeigt werden, um das Diagramm einfach zu halten, zum Beispiel Malware-Scans auf der sicheren Seite des Luftspiegels.
Zurück zur einzelnen VM-Laborumgebung.
Quelle: Kubernetes Blog