Difference between revisions of "Pv-migrate"
Jump to navigation
Jump to search
Line 57: | Line 57: | ||
kubectl scale deployment wordpress --replicas=0 | kubectl scale deployment wordpress --replicas=0 | ||
kubectl scale statefulset wordpress-mariadb --replicas=0 | kubectl scale statefulset wordpress-mariadb --replicas=0 | ||
+ | |||
+ | sleep 5 | ||
pv-migrate migrate \ | pv-migrate migrate \ |
Latest revision as of 20:25, 2 December 2023
pv-migrate
https://devopstales.github.io/home/k8s-migrate-pv/
https://github.com/utkuozdemir/pv-migrate
https://github.com/utkuozdemir/pv-migrate/blob/master/USAGE.md
Add
#!/bin/sh set -eu curl -LO https://github.com/utkuozdemir/pv-migrate/releases/download/v1.7.1/pv-migrate_v1.7.1_linux_x86_64.tar.gz tar xf pv-migrate_v1.7.1_linux_x86_64.tar.gz sudo mv pv-migrate /usr/local/bin/ pv-migrate --version
Backup to ceph-rbd
wordpress.tmp.pvc.yaml
--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data-wordpress-mariadb-0-a spec: accessModes: - ReadWriteOnce storageClassName: ceph-rbd resources: requests: storage: 8Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wordpress-a spec: accessModes: - ReadWriteOnce storageClassName: ceph-rbd resources: requests: storage: 10Gi
kubectl apply -f wordpress.tmp.pvc.yaml
Migrate to temporary backup pvcs
kubectl scale deployment wordpress --replicas=0 kubectl scale statefulset wordpress-mariadb --replicas=0 sleep 5 pv-migrate migrate \ data-wordpress-mariadb-0 data-wordpress-mariadb-0-a pv-migrate migrate \ wordpress wordpress-a
Scale
#!/bin/bash set -eu kubectl scale deployment wordpress --replicas=0 kubectl scale statefulset wordpress-mariadb --replicas=0 sleep 5 pv-migrate migrate \ data-wordpress-mariadb-0-a data-wordpress-mariadb-0 pv-migrate migrate \ wordpress-a wordpress kubectl scale deployment wordpress --replicas=1 kubectl scale statefulset wordpress-mariadb --replicas=1 exit
Example helm wordpress
cm.yaml
apiVersion: v1 kind: ConfigMap metadata: name: php-ini labels: app.kubernetes.io/name: wordpress data: php-custom.ini: | upload_max_filesize = 2256M post_max_size = 2256M max_execution_time = 360 max_input_time = 360 memory_limit = 2512M
main.sh
#!/bin/bash set -eu kubectl_apply "-f cm.yaml" helm upgrade --install wordpress bitnami/wordpress # if custom values # envsubst < values.yaml.envsubst > values.yaml # helm upgrade --install wordpress bitnami/wordpress values.yaml
Run
./main.sh