2017-08-09 5 views
0

Angenommen, ich habe einen Datenbankdienst mit einem Knoten (PostgreSQL, MySQL, was auch immer ...) auf kubernetes mit einem PersistentVolumeClaim von 10G bereitgestellt, das auf GKE oder AWS oder Azure ausgeführt wird (tut es nicht wirklich wichtig). Wie wird die Festplatte auf 20G vergrößert? Gibt es eine Möglichkeit, beispielsweise eine PVC-Bindung an eine vorhandene Festplatte (eine Momentaufnahme der 10G-Festplatte) oder etwas Ähnliches anzubringen?Zunehmende Größe von persistenten Festplatten auf Kubernetes

Was ich will, ist die Speichergröße einer Festplatte zu erhöhen, die zu einem PVC gehört UND die alten Daten zu pflegen (die Festplatte wird nicht unbedingt eine Datenbank sein, also bin ich nicht auf der Suche nach einer Datenbanksicherung oder so ähnlich Das).

Ich bin auf der Suche nach etwas wie: Machen Sie eine Momentaufnahme der alten Festplatte, erstellen Sie eine größere Festplatte aus dem Snapshot und "machen Sie die PVC die neue Festplatte verwenden".

Vielen Dank

+1

Dies ist Cloud-Provider abhängig, nicht abhängig von K8s. Es spielt also eine Rolle, auf welchen Cloud-Anbieter Sie ausgerichtet sind. –

+0

@NorbertvanNobelen Eigentlich glaube ich, dass meine Frage missverstanden wurde. Ich möchte ein allgemeines Verfahren, um die Festplatte zu ersetzen (automatisch bereitgestellt von k8s in jedem unterstützten Anbieter) ein PersistentVolumeClaim sollte gebunden werden. Lasst uns zum Beispiel nur auf GKE fokussieren. Wenn ich eine Bereitstellung mit einem PVC erstelle, stellt k8s einen neuen Datenträger in der Google Cloud bereit und bindet diesen Datenträger an den PVC. Später möchte ich diese Platte snapshot, eine neue, größere Festplatte in Google Cloud aus diesem Snapshot erstellen und "sagen", dass der PVC an diese neue Festplatte statt an die alte bindet. –

+0

Ja, und dieser Teil ist vom Cloud-Provider abhängig, nicht etwas, was k8s in diesem Moment tun kann. Du wirst es selbst schreiben müssen –

Antwort

1

Sie haben ein PVC mit PV 10G. Sie möchten seine Größe erhöhen. Leider wird die Größenanpassung noch nicht unterstützt. Also, Sie müssen neue PVC mit 20G Größe erstellen.

Nehmen wir an, Ihr vorhandenes PVC mit 10G heißt older.

folgenden Schritte aus:

Schritt 1: mit 20G Erstellen neuer PVC, lässt seine latest genannt sagen.

Schritt 2: Berg older & latest beide in einem Container. Kopieren Sie Daten von older zu latest.

Schritt 3: Löschen Sie PVC older, wir brauchen older nicht mehr. Daten kopiert nach latest PV.

Schritt 4: Stellen Sie PV von latest zur Verfügung.

$ kubectl get pvc latest 
NAME  STATUS VOLUME          CAPACITY ACCESS MODES STORAGECLASS AGE 
latest Bound  pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi  RWO   standard  30s 

bearbeiten PV pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 persistentVolumeReclaimPolicy auf Retain einzustellen. Das Löschen von PVC löscht PV nicht.

Löschen Sie jetzt PVC latest.

$ kubectl delete pvc latest 

$ kubectl get pv 
NAME          CAPACITY ACCESS MODES RECLAIM POLICY STATUS  CLAIM   STORAGECLASS REASON AGE 
pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi  RWO   Retain   Released default/latest standard     3m 

Siehe den Status, PV ist freigegeben.

Jetzt stellen Sie diese latest PV zur Verfügung, um von einem anderen PVC beansprucht zu werden, unser older, weil wir 20G unter diesem PVC older verwenden möchten.

bearbeiten PV wieder entfernen claimRef

$ kubectl edit pv pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 

$ kubectl get pv 
NAME          CAPACITY ACCESS MODES RECLAIM POLICY STATUS  CLAIM  STORAGECLASS REASON AGE 
pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi  RWO   Retain   Available    standard     6m 

nun der Status der PV verfügbar ist.

Schritt 5: Anspruch latest PV von older PVC

apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
    name: older 
spec: 
    accessModes: 
    - ReadWriteOnce 
    volumeName: pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 
    resources: 
    requests: 
     storage: 10Gi 

Verwenden Volume pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6

$ kubectl get pvc,pv 
NAME   STATUS VOLUME          CAPACITY ACCESS MODES STORAGECLASS AGE 
pvc/older Bound  pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi  RWO   standard  9s 

NAME           CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM   STORAGECLASS REASON AGE 
pv/pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi  RWO   Retain   Bound  default/older standard     9m 

Endlich: Set persistentVolumeReclaimPolicy zu Delete

Dies ist, wie Ihr PVC older hat latest PV mit 20G gehabt.

Verwandte Themen