Kubernetes Ortamında Velero ile Otomatik Yedekleme
Kubernetes ortamlarında veri sürekliliğini sağlamak için yedekleme kritik bir konudur. Bu yazıda, Velero kullanarak belirli bir namespace’in her gün Türkiye saatiyle saat 16:00‘da otomatik olarak nasıl yedeklendiğini adım adım göstereceğim.
🔧 Kullanılan Araçlar
- Velero: Kubernetes yedekleme ve geri yükleme aracı
- MinIO: S3 uyumlu local object storage
- Helm: Kubernetes için paket yöneticisi
- Kubernetes Namespace:
test - TimeZone Desteği:
CRON_TZözelliği (Velero v1.6.0+)
📦 Velero Schedule Yapılandırması
Belirli bir saat diliminde çalışacak bir yedekleme zamanlayıcısı (schedule) oluşturmak için aşağıdaki Velero CRD (Custom Resource Definition) yapılandırmasını kullandım:
apiVersion: velero.io/v1
kind: Schedule
metadata:
name: zeus-ns-backup-daily
namespace: velero
spec:
schedule: "CRON_TZ=Europe/Istanbul 0 16 * * *" # Her gün saat 16:00'da çalışacak şekilde ayarlandı
template:
ttl: 48h0m0s # Yedekler 2 gün boyunca saklanacak
includedNamespaces:
- test
🕓 CRON_TZ ile Yerel Zaman Desteği
Velero’nun CRON_TZ desteği sayesinde cron ifadelerinde artık saat dilimi belirtebiliyoruz. Bu özellik sayesinde UTC çevirisi yapmakla uğraşmadan, doğrudan yerel saatle işlem yapılabiliyor.
Bu örnekte Europe/Istanbul zaman dilimini kullanarak her gün saat 16:00’da zeus namespace’inin yedeği alınması sağlandı.
🧪 Kontrol ve İzleme
Zamanlayıcının çalıştığını şu komutla kontrol edebilirsiniz:
kubectl get schedule -n velero
Zamanlanan yedeklerin detaylarını görmek için ise:
kubectl get backup -n velero
✅ Sonuç
Bu yapılandırmayla birlikte, Kubernetes ortamınızda zeus namespace’i her gün otomatik olarak yedeklenecek ve yedekler 2 gün boyunca saklanacak. CRON_TZ özelliği sayesinde zamanlama artık daha okunabilir ve yönetilebilir hale geliyor.