Files
kube/utils/data-migrate
2026-07-20 20:57:55 +03:00
..
2026-07-20 20:57:55 +03:00
2026-07-20 20:57:55 +03:00

  1. run the application you need
  2. wait for its PVs to be created
  3. suspend the application: kubectl scale deployment/statefulset/... NAME -n NAMESPACE --replicas=0
  4. wait for it to scale down so that the ReadWriteOnce PVs are released (or data-migrate will not be able to mount them)
  5. look up the destination PVC name you need: kubectl get pvc NAME -n NAMESPACE
  6. put the source host(node) and dir and destination PVC name to install.yaml
  7. install the data-migrate: kubectl create namespace data-migrate && kubectl delete pod data-migrate -n data-migrate --ignore-not-found=true && kubectl apply -f install.yaml
  8. run the migration: kubectl exec data-migrate -n data-migrate -- cp -a /old/. /new/ or anything you need instead of cp
  9. validate you have everything migrated: kubectl exec data-migrate -n data-migrate -- ls -laR /new
  10. uninstall the data-migrate: kubectl delete pod data-migrate -n data-migrate
  11. resume the application back: kubectl scale deployment/statefulset/... NAME -n NAMESPACE --replicas=1