12 lines
1.1 KiB
Markdown
12 lines
1.1 KiB
Markdown
0. the namespace will be the namespace for your target application
|
|
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 namespace, source host(node) and dir and destination PVC name to `install.yaml`
|
|
7. install the data-migrate: `kubectl delete pod data-migrate -n NAMESPACE --ignore-not-found=true && kubectl apply -f install.yaml`
|
|
8. run the migration: `kubectl exec data-migrate -n NAMESPACE -- cp -a /old/. /new/` or anything you need instead of `cp` or interactive shell `kubectl exec -it data-migrate -n NAMESPACE -- sh` (or `bash` or `zsh`)
|
|
9. validate you have everything migrated: `kubectl exec data-migrate -n NAMESPACE -- ls -laR /new`
|
|
10. uninstall the data-migrate: `kubectl delete pod data-migrate -n NAMESPACE`
|
|
11. resume the application back: `kubectl scale deployment/statefulset/... NAME -n NAMESPACE --replicas=1` |