Was ist der Unterschied zwischen dem persistenten Volumen (PV) und dem persistenten Volumenanspruch (PVC) in einfachen Worten?

Antworten:

67

PVC ist eine Speicherbedarfserklärung, die irgendwann verfügbar / befriedigt werden kann - wie bei einer tatsächlichen PV .

Es ist ein bisschen wie das asynchrone Programmierkonzept eines Versprechens . PVC verspricht, dass es irgendwann in ein Speichervolumen "übersetzt" wird, das Ihre Anwendung verwenden kann, und eine der definierten Eigenschaften wie Klasse, Größe und Zugriffsmodus (ROX, RWO und RWX).

Dies ist eine Möglichkeit, das Denken über eine bestimmte Speicherimplementierung außerhalb Ihrer Pods / Bereitstellungen zu abstrahieren. In den meisten Fällen muss Ihre Anwendung nicht "Gib mir NFS-Speicher von Server X der Größe Y" deklarieren. Es ist eher wie "Ich brauche dauerhaften Speicher der Standardklasse und Größe Y".

Auf diese Weise können Bereitstellungen in verschiedenen Clustern diese Anforderungen unterschiedlich erfüllen. Einer kann ein EBS-Gerät verbinden, ein anderer kann ein GlusterFS bereitstellen, und Ihre Kernmanifeste sind in beiden Fällen immer noch dieselben.

Darüber hinaus können Sie in Ihrer Bereitstellung Volumenanspruchsvorlagen definieren, sodass für jeden Pod automatisch ein reflektierendes PVC erstellt wird (dh Unterstützung der infrastrukturunabhängigen Speicherdefinition für eine Gruppe skalierbarer Pods, für die jeder seinen eigenen dedizierten Speicher benötigt).

Radek 'Goblin' Pieczonka
quelle
7
Jeder, der nach einem klaren Unterschied / einer klaren Klarstellung zwischen PV, PVC und Speicherklasse sucht, kann sich auf Folgendes
Suhas Chikkanna
1
Ein Zitat aus dem verlinkten Artikel: "Persistent Volume Claims stellen die ausschließliche Verwendung eines Persistent Volume durch einen bestimmten Pod dar"
Vaviloff
63

Aus den Dokumenten

PVs sind Ressourcen im Cluster. PVCs sind Anforderungen für diese Ressourcen und dienen auch als Anspruchsprüfung für die Ressource.

Ein persistentes Volume (PV) ist also das "physische" Volume auf dem Host-Computer, auf dem Ihre persistenten Daten gespeichert sind. Ein Persistent Volume Claim (PVC) ist eine Aufforderung an die Plattform, eine PV für Sie zu erstellen, und Sie befestigen PVs über PVC an Ihren Pods.

So ähnlich

Pod -> PVC -> PV -> Host machine
Will Gordon
quelle
2
Der Hostcomputer kann eine beliebige Art von Speicher sein = [NFS | Cloud-Speicher | Speicheranbieter | ...]
Pav K.
@will Gordon Bitten Sie Sie, mir mitzuteilen, woher die Speicherklasse in Ihrer Antwort kommt.
Suhas Chikkanna
@SuhasChikkanna, StorageClasses ( kubernetes.io/docs/concepts/storage/storage-classes ) definieren einfach den Typ der PVCs, die ein Benutzer anfordern kann.
Will Gordon
1
@ WillGordon Ja, ich sehe Ihr Bild jetzt so. Bitte korrigieren Sie mich, wenn ich falsch liege: - Pod -> PVC -> PV -> (Speicherklasse, falls zutreffend) -> Host-Maschine . Für alle anderen ist dies eine gute Anleitung, um den Unterschied zwischen PV, PVC und Speicherklasse zu erkennen ( portworx.com/basic-guide-kubernetes-storage ).
Suhas Chikkanna
@SuhasChikkanna Das scheint ungefähr richtig zu sein, obwohl ich denke, dass die StorageClass dazwischen gehen würde PVCund PVweil sie Klassen von PVs definiert, über die generiert werden kann PVC.
Will Gordon
7

Kurz:
- Hier haben Sie den Speicher! PersistenVolume (PV)
- Sie erhalten den Speicher, wenn Sie ihn wirklich brauchen! PersistentVolumeClaim (PVC)

mrw
quelle
Hallo und willkommen bei Stack Overflow. Können Sie eine detailliertere Erklärung geben? Es ist in Ordnung, Ihre Lösung zusammenzufassen, aber bitte versuchen Sie, beschreibend zu sein, wenn Sie können :)
Ema.jar
4

Kurz und einfach

Persistentes Volumen - Verfügbarer Speicher Angenommen, Sie haben 100Gi

Persistent Volume Claim - Sie fordern von Persistent Volume an, nehmen wir an, Sie fordern 10Gi an, Sie erhalten es, aber wenn Sie 110Gi anfordern, erhalten Sie es nicht.

Aditya
quelle
3
  1. Ein PersistentVolume (PV) ist ein Speicherelement im Cluster oder im zentralen Speicher, das von einem Administrator bereitgestellt oder mithilfe von Speicherklassen dynamisch bereitgestellt wurde.

  2. Ein PersistentVolumeClaim (PVC) ist eine Anforderung zur Speicherung durch einen Benutzer. Es ist ähnlich wie bei einem Pod. Pods verbrauchen Knotenressourcen und PVCs verbrauchen PV-Ressourcen.

Angenommen, Ihre Eltern haben viel Geld (PV), aber sie stellen Sie nur zur Verfügung, wenn Sie sie entsprechend Ihren Bedürfnissen (PVC) anfordern.

Dashrath Mundkar
quelle
3

Ein PersistentVolume (PV) ist ein Speicherelement im Cluster, das vom Server- / Speicher- / Clusteradministrator bereitgestellt oder mithilfe von Speicherklassen dynamisch bereitgestellt wurde. Es ist eine Ressource im Cluster, genau wie der Knoten.

Ein PersistentVolumeClaim (PVC) ist eine Anforderung zur Speicherung durch einen Benutzer, die über PV abgerufen werden kann. Es ist ähnlich wie bei einem Pod. Pods verbrauchen Knotenressourcen und PVCs verbrauchen PV-Ressourcen. Pods können bestimmte Ressourcenebenen (CPU und Speicher) anfordern. Ansprüche können bestimmte Größen- und Zugriffsmodi anfordern (z. B. können sie ReadWriteOnce, ReadOnlyMany oder ReadWriteMany bereitgestellt werden.

Divyani Singh
quelle
2

Ein Anspruch auf beständiges Volumen gibt an, auf welche Optionen Sie in einem bestimmten Cluster zugreifen können. In diesem Geschäft mit dem Namen Smart Tech erhalten Sie dieses Rundschreiben mit einigen Anzeigen zu Ihren Konfigurationsoptionen. Bei diesen Anzeigen handelt es sich um den Anspruch auf beständiges Volumen.

In Ihre Konfigurationsdatei schreiben Sie die verschiedenen Persistent Volume Claims, die Sie in Ihrem Cluster haben werden, ähnlich wie Ihre Wunschliste für den Weihnachtsmann, aber natürlich werden Sie diese zum Verkäufer bei Smart Tech bringen, wenn Sie sind fertig.

Sie schreiben also eine Konfigurationsdatei, die besagt, dass allen Ihren Clustern eine 600-GB-Festplattenoption und eine 1-TB-Festplattenoption zur Verfügung stehen sollten.

Wenn Sie eine dieser Optionen des Persistent Volume Claim auswählen, fordern Sie Kubernetes (den Verkäufer) auf, diese Option für Sie zu erhalten. Die von Ihnen gewählte Option Kubernetes muss diese Instanzen von Speicheroptionen im Bestand prüfen Zimmer, die leicht verfügbar sind. Diese Instanzen von Festplatten können sofort verwendet werden und gelten als statisch bereitgestellt, da sie im Voraus erstellt werden.

Auf der anderen Seite gibt es dynamisch bereitgestellte Optionen, die im laufenden Betrieb erstellt wurden, als Sie Kubernetes den Verkäufer fragten. So ähnlich wie bei einer Just-in-Time-Produktion wurde sie erstellt, als Sie sofort danach fragten.

Der Persistent Volume Claim ist also die Werbung für Optionen im Geschäft, und je nachdem, welche Sie für Kubernetes auswählen, erhalten Sie diese, entweder im Speicher oder im laufenden Betrieb.

Das persistente Volume ist das tatsächliche Produkt oder die Optionen, die Sie von Kubernetes zurückerhalten, nach denen Sie gefragt haben. Wenn Kubernetes nicht das hat, wonach Sie gefragt haben, wird es versuchen, es im laufenden Betrieb für Sie zu erstellen.

Das PVC ist also das, was Smart Tech Ihrem Cluster anbietet, das Kubernetes, der Verkäufer, für Sie erhält, und das PV ist das tatsächlich an Sie gelieferte Endprodukt.

Daniel
quelle
1

PersistentVolume (PV) und PersistentVolumeClaim (PVC) sind die von den Kubernetes bereitgestellten Ressourcen-APIs. PV ist ein Speicherplatz, der von einem Administrator vorab zugewiesen werden soll. Und PVC ist eine Anfrage für ein Stück Lagerung durch einen Benutzer.

Aakanksha Mähne
quelle
1

Beim Vergleich von PV und PVC mit Knoten und Pods finden Sie einige Gemeinsamkeiten. PV wie ein Knoten, der den Speicher definiert. PVC-ähnliche Pods, die die Ressourcen (Mem, CPU) benötigen und diese abrufen, falls der Knoten über die zuzuweisenden Ressourcen verfügt. In diesem Fall handelt es sich um einen Speicher.

Mickey Hovel
quelle
1

PV ist eine logische Darstellung des Speichers, der an einen Pod oder eine Bereitstellung angeschlossen ist. Es verwendet PVC, um Speicherressourcen von den physischen Speicherressourcen in Ihrem Kube-Cluster anzufordern. Meiner Meinung nach ist seine Beziehung eher wie folgt:

Pods -> PV -> PVC -> Physical Storage

Viele Online-Erklärungen klingen verwirrend und ich verstehe dies aus ihrer Beziehung in Manifestdateien.

Z.Wei
quelle