Java >> Java Program >  >> Java

Hur man säkerhetskopierar Neo4J på hanterade Kubernetes

I följande video kommer jag att förklara hur man tar fullständiga och inkrementella säkerhetskopior av Neo4J-instanser som körs i en hanterad Kubernetes-miljö. Vi kommer att använda ytterligare poddar för att ta fjärrsäkerhetskopior och lagra säkerhetskopieringsdata på beständiga volymer som tillhandahålls av vår hanterade miljö.

Om du undrar hur du distribuerar Neo4J till hanterade Kubernetes, ta en titt på de tidigare inläggen som visar exempel på kluster och enstaka kärninstanser.

Prova själv

Du hittar Kubernetes-resurserna i följande GitHub-förråd.

123 cd /tmp/ git clone https: //github.com/sdaschner/neo4j-tools cd neo4j-tools/

Först skapar vi den beständiga volymen som vi lagrar säkerhetskopiorna på senare:

1 kubectl apply -f backup/neo4j-backup-pvc.yaml

Detta skapar ett volymanspråk för vår backup-volym, som skapas av vår lagringsleverantör. Efter några ögonblick bör vi ha en extra ihållande volym:

12345 kubectl get pvc NAME                             STATUS   VOLUME               STORAGECLASS     AGE backupdir-graphdb-neo4j-core- 0 Bound    pvc-072c4f08-[...]   ibmc-file-gold   2m20s [...]

Nu kan vi skapa vår backup-pod som fjärransluter till vår Neo4J-instans, i mitt exempel core-0 instans, för att ta en fullständig säkerhetskopia.

123456 kubectl apply -f backup/neo4j-backup.yaml kubectl get pods NAME                       READY   STATUS      RESTARTS   AGE neo4j-backup               0 / 1 Completed   0 23s

Om vi ​​tittar på pods-loggutgången ser vi att det tog en fullständig säkerhetskopia av vår Neo4J-instans, liknande det som visas i videon. Podden band vår backupdir- volym.

Om vi ​​nu tar bort den färdiga podden och skapar en ny, från samma YAML-beskrivning, kommer vi att se att den bara tar en inkrementell säkerhetskopia, eftersom den kommer att binda samma ihållande volym och lägga märke till den befintliga säkerhetskopian.

12 kubectl delete pod neo4j-backup kubectl apply -f backup/neo4j-backup.yaml

Podloggen visar att nu endast en inkrementell säkerhetskopia har tagits.

För ett mer hanterat sätt att skapa dessa backup-pods kan du använda följande Kubernetes-jobb, som kommer att skapa en pod, liknande hur en Kubernetes-replikuppsättning hanterar sina pods.

123456 kubectl apply -f backup/neo4j-backup-job.yaml kubectl get pods NAME                       READY   STATUS      RESTARTS   AGE neo4j-backup-5ljhj         0 / 1 Completed   0 23s

Java-tagg