Ответ
Резервное копирование в Kubernetes должно охватывать как метаданные кластера (ресурсы), так и данные приложений (Persistent Volumes). В нашем продакшн-окружении мы используем комбинацию инструментов.
Стратегия бэкапа:
-
Резервное копирование ресурсов Kubernetes с помощью Velero: Velero — основной инструмент. Он позволяет создавать бэкапы всего namespace или отдельных ресурсов по лейблам, включая их конфигурации.
# Установка Velero (пример для AWS) velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.5.0 --bucket my-k8s-backups --backup-location-config region=eu-west-1 --snapshot-location-config region=eu-west-1 # Создание ежедневного бэкапа для namespace 'production' velero schedule create daily-backup --schedule="@every 24h" --include-namespaces production -
Снапшоты Persistent Volumes: Velero интегрируется с CSI драйверами облачных провайдеров для создания снапшотов дисков. Это обеспечивает консистентные бэкапы данных.
# Velero BackupStorageLocation с включением снапшотов apiVersion: velero.io/v1 kind: BackupStorageLocation spec: provider: aws objectStorage: bucket: my-k8s-backups config: region: eu-west-1 -
Резервное копирование etcd: Для полного аварийного восстановления кластера (DR) мы также настраиваем автоматические снапшоты etcd (если кластер self-managed, например, kubeadm).
# Использование etcdctl для создания снапшота ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot save /var/lib/etcd/backup.db
Критически важные практики:
- Тестирование восстановления: Регулярно (раз в квартал) проводим drills по восстановлению namespace из бэкапа в тестовый кластер.
- Хранение вне кластера: Все бэкапы и снапшоты хранятся в объектном хранилище (S3) с включенным versioning и политиками жизненного цикла.
- RPO/RTO: Конфигурация Velero Schedule и хранение снапшотов настраиваются в соответствии с требованиями приложения к точке восстановления (RPO) и времени восстановления (RTO).