- run the application you need
- wait for its PVs to be created
- suspend the application:
kubectl scale deployment/statefulset/... NAME -n NAMESPACE --replicas=0 - wait for it to scale down so that the ReadWriteOnce PVs are released (or data-migrate will not be able to mount them)
- look up the destination PVC name you need:
kubectl get pvc NAME -n NAMESPACE - put the source host(node) and dir and destination PVC name to
install.yaml - 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 - run the migration:
kubectl exec data-migrate -n data-migrate -- cp -a /old/. /new/or anything you need instead ofcp - validate you have everything migrated:
kubectl exec data-migrate -n data-migrate -- ls -laR /new - uninstall the data-migrate:
kubectl delete pod data-migrate -n data-migrate - resume the application back:
kubectl scale deployment/statefulset/... NAME -n NAMESPACE --replicas=1