mod: backup k3s ...

This commit is contained in:
Sergei Erjemin 2025-04-29 21:17:12 +03:00
parent c3d4600662
commit 1abeffd72c
2 changed files with 15 additions and 7 deletions

View File

@ -16,7 +16,8 @@
* [Под с 3X-UI](kubernetes/k3s-3xui-pod.md) в k3s * [Под с 3X-UI](kubernetes/k3s-3xui-pod.md) в k3s
* [Проксирование внешнего хоста через Traefik (Ingress-контроллер)](kubernetes/k3s-proxy.md) * [Проксирование внешнего хоста через Traefik (Ingress-контроллер)](kubernetes/k3s-proxy.md)
* [Перенос контейнера Docker в k3s](kubernetes/k3s-migrating-container-from-docker-to-kubernetes.md) (на примере Gitea) * [Перенос контейнера Docker в k3s](kubernetes/k3s-migrating-container-from-docker-to-kubernetes.md) (на примере Gitea)
* [Резервное копирование k3s](kubernetes/k3s-backup.md)
*
## Python ## Python
* [Устранение проблем при установке Python-коннектора mysqlclient (MySQL/MariaDB)](python/python-mysql.md) * [Устранение проблем при установке Python-коннектора mysqlclient (MySQL/MariaDB)](python/python-mysql.md)
* [Python-скрипт как служба Linux](python/python_as_service.md) * [Python-скрипт как служба Linux](python/python_as_service.md)

View File

@ -10,8 +10,8 @@ PersistentVolumeClaims (PVC). Хочется сделать резервную
#!/usr/bin/bash #!/usr/bin/bash
# Проверяем, что есть каталог для монтирования SAMBA (и создаем его, если нет) # Проверяем, что есть каталог для монтирования SAMBA (и создаем его, если нет)
if [ ! -d /media/backup/k3s-backup ]; then if [ ! -d /media/backup/ ]; then
mkdir -p /media/backup/k3s-backup mkdir -p /media/backup/
fi fi
@ -29,19 +29,16 @@ cd /home/opi
# ==== 1 Снапшоты etcd (k3s по умолчанию делает снапшоты каждык 12 часов # ==== 1 Снапшоты etcd (k3s по умолчанию делает снапшоты каждык 12 часов
# в каталоге /var/lib/rancher/k3s/server/db/snapshots) # в каталоге /var/lib/rancher/k3s/server/db/snapshots)
echo -e "$(date +'%F %R:%S') - ZIP ETCD\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log echo -e "$(date +'%F %R:%S') - ZIP ETCD\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log
umount /media/backup
echo -e "$(date +'%F %R:%S') - ZIP ETCD\n$(date +'%F %R:%S') - =========================" echo -e "$(date +'%F %R:%S') - ZIP ETCD\n$(date +'%F %R:%S') - ========================="
/usr/bin/zip -r /media/backup/k3s-backup/etcd-------$(date +'%F--%H-%M-%S').zip /var/lib/rancher/k3s/server/db/snapshots/ /usr/bin/zip -r /media/backup/k3s-backup/etcd-------$(date +'%F--%H-%M-%S').zip /var/lib/rancher/k3s/server/db/snapshots/
# ==== 2 Сохранение манифестов # ==== 2 Сохранение манифестов
echo -e "$(date +'%F %R:%S') - ZIP MANIFESTS\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log echo -e "$(date +'%F %R:%S') - ZIP MANIFESTS\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log
umount /media/backup
echo -e "$(date +'%F %R:%S') - ZIP MANIFESTS\n$(date +'%F %R:%S') - =========================" echo -e "$(date +'%F %R:%S') - ZIP MANIFESTS\n$(date +'%F %R:%S') - ========================="
/usr/bin/zip -r /media/backup/k3s-backup/manifests--$(date +'%F--%H-%M-%S').zip /home/opi/k3s/ /usr/bin/zip -r /media/backup/k3s-backup/manifests--$(date +'%F--%H-%M-%S').zip /home/opi/k3s/
# ==== 3 Сохранение Секретов # ==== 3 Сохранение Секретов
echo -e "$(date +'%F %R:%S') - ZIP SECRETS\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log echo -e "$(date +'%F %R:%S') - ZIP SECRETS\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log
umount /media/backup
echo -e "$(date +'%F %R:%S') - ZIP SECRETS\n$(date +'%F %R:%S') - =========================" echo -e "$(date +'%F %R:%S') - ZIP SECRETS\n$(date +'%F %R:%S') - ========================="
# Получаем список пространств имен # Получаем список пространств имен
namespaces=$(kubectl get ns -o jsonpath='{.items[*].metadata.name}') namespaces=$(kubectl get ns -o jsonpath='{.items[*].metadata.name}')
@ -60,7 +57,6 @@ done
# Чистим старые файлы резервных копий # Чистим старые файлы резервных копий
echo -e "$(date +'%F %R:%S') - удаляем старые файлы бекапов старше 14 дней:\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log echo -e "$(date +'%F %R:%S') - удаляем старые файлы бекапов старше 14 дней:\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log
# /usr/bin/find /media/backup/k3s-backup/ -type f -name "*.zip" -mtime +14 -name "backup.log-*" -delete # /usr/bin/find /media/backup/k3s-backup/ -type f -name "*.zip" -mtime +14 -name "backup.log-*" -delete
@ -78,4 +74,15 @@ mv /media/backup/k3s-backup/backup.log /media/backup/k3s-backup/log-backup-$(dat
echo -e "$(date +'%F %R:%S') - отсоединяем SAMBA\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log echo -e "$(date +'%F %R:%S') - отсоединяем SAMBA\n$(date +'%F %R:%S') - =========================" >> /media/backup/k3s-backup/backup.log
sudo umount /media/backup sudo umount /media/backup
echo -e "$(date +'%F %R:%S') - отсоединяем SAMBA\n$(date +'%F %R:%S') - =========================" echo -e "$(date +'%F %R:%S') - отсоединяем SAMBA\n$(date +'%F %R:%S') - ========================="
```
Добавим скрипт в системный cron (root):
```bash
sudo crontab -e
```
Например, добавим в cron запуск скрипта каждый день в 2:10:
```text
# Резервное копирование K3S
10 2 * * * /usr/bin/bash /home/opi/script/backup-k3s.sh
``` ```