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 |