Pv-migrate
Jump to navigation
Jump to search
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