Kubernetes HostPath -Volumes

Kubernetes HostPath -Volumes

Ein HostPath -Volumen zeigt auf einen bestimmten Dateisystem -Socket oder -verzeichnis auf dem Knoten. In Kubernetes gibt es verschiedene Volumentypen. Da die Bände von Gitrepo und LeereDir gelöscht sind. Das HostPath -Volumen und der Kubernetes -Volumensyp werden in diesem Artikel erörtert. Sie werden lernen, wie Sie die Minikube starten und in diesem Artikel eine YAML -Datei erstellen. Sie werden dann Schritt für Schritt durch die Konfiguration des HostPath-Volumes und die Erstellung des POD-Volumens geführt.

Was sind Kubernetes -Bände?

Die Container in einem Kubernetes -Pod können auf ein Datenverzeichnis zugreifen, das als Kubernetes -Lautstärke bezeichnet wird. Abhängig von der jeweiligen Art des verwendeten Volumens, des Standorts des Verzeichnisses, des Speichermedium.

Die Prozesse innerhalb einer Pod von Containern sehen eine Dateisystemansicht, die aus folgenden besteht:

    • Ein Stammdateien -System, das mit dem Inhalt des Containerbildes identisch ist.
    • Behälter, die mit Bänden montiert sind (falls definiert). Innerhalb des Containerdateisystems montiert jedes Volumen auf einem bestimmten Pfad.

Der .Spezifikation.Behälter[*].Volumemounts definiert die Volumina. Für jedes Containerbild, das in der Pod enthalten ist.

In Kubernetes gibt es verschiedene Volumentypen wie:

    • Anhaltende Bände
    • Leere Bände
    • Kurzlebige Bände
    • Kubernetes Volumes configMap
    • Kubernetes HostPath -Volumes

Was sind Kubernetes HostPath -Volumes?

In Kubernetes bedeutet der HostPath, die Ressourcen wie Dateien, Sockel oder Verzeichnisse vom Host oder Knoten im Pod zu montieren. Der HostPath kann Dinge wie Verzeichnisse angeben, die bereits vorhanden sein sollten oder bei der Erstellung von Pods erstellt werden sollten.

Wie in der folgenden Abbildung zu sehen ist, verweist ein HostPath -Volumen auf die Ressourcen des Dateisystems des Knotens. Dieselben Dateien sind für alle Schoten sichtbar, die das gleiche HostPath -Volumen verwenden und auf demselben Knoten arbeiten.


Abbildung 1: Die Dateien oder Verzeichnisse eines Arbeiterknotens werden durch ein HostPath -Volumen in das Dateisystem des Containers montiert.

Wenn eine Schote zerstört wird. Der folgende POD kann alle Dateien anzeigen, die der gelöschte Pod zurückgelassen hat, wenn er demselben Knoten wie der vorherige zugeordnet ist, und verwendet ein HostPath -Volumen, das sich auf denselben Pfad auf dem Host bezieht.

Das Folgende sind wichtige Fälle von HostPath -Volumenverbrauchsfällen. Obwohl die meisten Schoten es nicht benötigen, bietet es in einigen Situationen eine starke Fluchtschlüsselung:

    • Verwenden des POD zum Bereitstellen einiger Knotenspezifischer Dateien.
    • Ausführen eines Containers, der mit dem folgenden Befehl Zugriff auf Docker -Interna benötigt:
>/var/lib/dockerhostpath
    • Ausführen des Cadvisors in einem Container mit dem folgenden Befehl:
> /sys HostPath
    • Erlauben, dass ein Pod einen HostPath angeben kann.
    • Auswahl eines Typs für das HostPath -Volumen; Dies kann zusätzlich zum erforderlichen Pfadattribut konfiguriert werden.

So konfigurieren und erstellen Sie einen HostPath

Lernen wir zu lernen, wie Sie den HostPath konfigurieren und ihn erstellen.

Schritt 1: Starten Sie den Minikube -Server

Starten Sie im ersten Schritt den Minikube -Server, damit Sie die Kubectl -Befehle verwenden und Ihre Anwendung ausführen können. Mit dem Minikube können Sie Ihre Knoten und Pods in der Kubernetes -Umgebung bereitstellen. Der folgende Befehl muss verwendet werden, um das Minikube im aktiven Modus zu verwalten:

> Minikube Start


Dies aktiviert die Minikube und macht die Kubernetes -Umgebung bereit zu verwenden.


Schritt 2: Erstellen Sie eine Kubernetes YAML -Datei

In diesem Schritt lernen Sie, wie Sie eine YAML -Manifestdatei für Kubernetes erstellen. Anwendungstests und Bereitstellung auf Kubernetes benötigen die YAML -Dateien.

Bei der Verwendung von Kubernetes ist eine typische Aktion die Tendenz, nach Kubernetes -YAML -Dateien zu suchen, wenn wir beabsichtigen, einen Testkapsel bereitzustellen.

Bei der Verwendung von Kubernetes gibt es verschiedene Möglichkeiten, die Dateien zu generieren und zu bearbeiten. In diesem Artikel wird erläutert, wie Sie den Befehl nano verwenden, um eine YAML -Datei zu erstellen, da er die beste Wahl für Anfänger ist.

Befolgen Sie diese Schritte, um eine YAML -Datei mit Nano zu erstellen:

    • Starten Sie die Minikube.
    • Um eine neue Datei zu erstellen oder eine vorhandene zu ändern, navigieren Sie zum Ort des gewünschten Verzeichnisses.
    • Der Name der Datei sollte von Nano folgen. Zum Beispiel möchten Sie eine neue Datei namens Host erstellen.Yaml.

Führen Sie den folgenden Befehl aus, um einen YAML -Dateihost im Projektverzeichnis zu erstellen:

> $ nano Host.Yaml


Die Datei wird erstellt, nachdem der Befehl ausgeführt wurde. Der nächste Schritt besteht darin, an dem neu eröffneten Gastgeber zu arbeiten.YAML -Datei.

Schritt 3: Konfigurieren Sie den HostPath -Volumemount

Um ein Volumen zu erstellen und es einer Pod zur Verfügung zu stellen, befolgen Sie diese beiden Schritte:

    • Geben Sie es in der Spec: Volumes -Element der Pod -Vorlage an, bevor Sie den Pod für einige Knoten bereitstellen.
    • Montieren Sie das Volumen mit der Spezifikation: Container: Name>: Volumenbefehl in eine bestimmte Eigenschaft Container Mounters.

Diese Aktionen sind miteinander verbunden. Sie müssen ein Volumen an einem Behälter montieren, wenn Sie es erstellen. Sie können kein Volumen montieren, ohne es zuerst in der POD -Konfiguration zu definieren. Eine Stichprobe zum Erstellen und Montieren eines Volumens in einem YAML -POD -Vorlagen -Setup ist im Folgenden bereitgestellt:

> Spezifikation:
Behälter:
-Name: App-One
Bild: Nginx-One
Volumemounts:
-Name: Volume-Eins
MountPath: /App /Konfiguration
Bände:
-Name: Volume-Eins



In dem bereitgestellten Code können wir Folgendes beobachten:

    • Das benannte Test-Volumen wird in der Spezifikation erstellt.Bände nach dem Volumenbefehl und wird an die Pod angeschlossen.
    • Suchen Sie den HostPath im Abschnitt Pod Spec. Der jeweilige Pfad/Daten wird erstellt, weil der Typ: DirectoryorCreate bedeutet, dass der Pfad erstellt werden sollte, wenn er nicht vorhanden ist.
    • Die /Daten befinden sich auf dem Knoten, auf dem die Pod gesendet wird und im Container im Verzeichnis /Test-PD montiert ist.
    • Die Volumenerklärung und die Eigenschaft der Volumemounts erfordern beide den gleichen Volumennamen, der verwendet werden muss.

Schritt 4: Erstellen Sie die HostPath -Lautstärkepod

Lassen Sie uns in diesem Schritt den (Host.YAML) YAML -Datei, um ein HostPath -Volumen zu erstellen, wie im Folgenden dargestellt:

> $ kubectl erstellen -f Host.Yaml


Wie im oben erwähnten Screenshot zu sehen ist, wird der Pod mit dem Namen „Test-PD“ erfolgreich erstellt.

Abschluss

Dieser Artikel gibt einen allgemeinen Überblick über den HostPath und zeigt, wie die HostPath -Moderationen in der Praxis erstellt und konfiguriert werden. Als Teil der Funktion von HostPath, die verhindert, dass die Daten aus dem Dateisystem des Knotens beim Entfernen eines Pod gelöscht werden, gibt es jedoch auch mehrere Sicherheitsrisiken. Vermeiden Sie es, es zu verwenden, wann immer Sie können. Ein HostPath -Volumen sollte nur in das erforderliche Verzeichnis oder die erforderliche Datei skopiert werden, und es sollte als Readonly montiert werden, wenn Sie einen verwenden müssen. In diesem Artikel haben Sie gelernt, wie man von einem einfachen Beispiel erfolgreich ein POD-Volumen-Volumen festlegt und gleichzeitig lernt, wie man einen Pfad im Hostpfad erstellt und ihn in den Container montiert.