From 1abeffd72c38e56799e44f7d10e991e2a76f07e1 Mon Sep 17 00:00:00 2001 From: erjemin Date: Tue, 29 Apr 2025 21:17:12 +0300 Subject: [PATCH] mod: backup k3s ... --- README.md | 3 ++- kubernetes/k3s-backup.md | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 108acd9..eb6f92d 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,8 @@ * [Под с 3X-UI](kubernetes/k3s-3xui-pod.md) в k3s * [Проксирование внешнего хоста через Traefik (Ingress-контроллер)](kubernetes/k3s-proxy.md) * [Перенос контейнера Docker в k3s](kubernetes/k3s-migrating-container-from-docker-to-kubernetes.md) (на примере Gitea) - +* [Резервное копирование k3s](kubernetes/k3s-backup.md) +* ## Python * [Устранение проблем при установке Python-коннектора mysqlclient (MySQL/MariaDB)](python/python-mysql.md) * [Python-скрипт как служба Linux](python/python_as_service.md) diff --git a/kubernetes/k3s-backup.md b/kubernetes/k3s-backup.md index e4ae7c4..f0be25d 100644 --- a/kubernetes/k3s-backup.md +++ b/kubernetes/k3s-backup.md @@ -10,8 +10,8 @@ PersistentVolumeClaims (PVC). Хочется сделать резервную #!/usr/bin/bash # Проверяем, что есть каталог для монтирования SAMBA (и создаем его, если нет) -if [ ! -d /media/backup/k3s-backup ]; then - mkdir -p /media/backup/k3s-backup +if [ ! -d /media/backup/ ]; then + mkdir -p /media/backup/ fi @@ -29,19 +29,16 @@ cd /home/opi # ==== 1 Снапшоты etcd (k3s по умолчанию делает снапшоты каждык 12 часов # в каталоге /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 -umount /media/backup 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/ # ==== 2 Сохранение манифестов 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') - =========================" /usr/bin/zip -r /media/backup/k3s-backup/manifests--$(date +'%F--%H-%M-%S').zip /home/opi/k3s/ # ==== 3 Сохранение Секретов 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') - =========================" # Получаем список пространств имен 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 # /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 sudo umount /media/backup 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 ``` \ No newline at end of file