DIABOLIKSS
Rehberler|Veeam Kasten ile Kubernetes Backup: Neden Klasik Backup Burada Çalışmaz?
How-To Guide · Veeam Kasten K10

Veeam Kasten ile Kubernetes Backup:Neden Klasik Backup Burada Çalışmaz?

Kasten K10 v7.xOpenShift + Vanilla K8sHaziran 2025

"Kubernetes'i Veeam ile yedekledik" diyen ekiplerin çoğu aslında yalnızca VM'leri yedekliyor. PVC, ConfigMap, Secret, Helm release ve namespace bağımlılıkları çoğu durumda backup kapsamının dışında kalıyor. Bu rehber, Kubernetes'e özel backup yaklaşımını ve Kasten K10'un doğru kurulumunu anlatıyor.

01

Kubernetes Backup Sorunu: VM Backup'ı Neden Çalışmaz?

Klasik VM backup aracı, Kubernetes node'larını disk seviyesinde yedekler. Ama Kubernetes'te önemli olan disk değil; durum (state)'dir. Bu durum, namespace nesneleri, PVC verileri, ConfigMap/Secret'lar ve Helm release metaverisi olarak dağıtılmış biçimde tutulur.

Nesne TipiVM Backup ile Kurtarılabilir mı?Kasten ile?
Pod / Deployment YAML✗ Hayır (etcd'de)✔ Evet (etcd snapshot)
PVC / Persistent DataKısmi (disk snapshot)✔ Evet, uygulama tutarlı
ConfigMap / Secret✗ Hayır✔ Evet
Helm Release Metadata✗ Hayır✔ Evet
Namespace RBAC Rolleri✗ Hayır✔ Evet
Ingress / Service Kuralları✗ Hayır✔ Evet
🚨
Gerçek Senaryo: Üretim Kubernetes cluster'ı çöktü. VM backup'ı var, node'ları geri getirdiniz. Ama etcd yoktu; tüm deployment, service ve configmap tanımları gitti. Uygulamaları sıfırdan manuel olarak yeniden deploy etmek 3 gün sürdü. Kasten olsaydı 20 dakikada restore edilirdi.
02

Kasten K10 Mimarisi

Kasten K10, Kubernetes-native bir backup platformudur. Kubernetes API'si üzerinden çalışır, her namespace'i bağımsız bir uygulama gibi ele alır ve uygulamaların kendi backup hook'larını kullanmasına izin verir.

📸
Snapshot
PVC anlık kopyalama, CSI snapshot entegrasyonu
📦
Export
Snapshot'i object storage'a aktarma (Vault dahil)
🔄
Restore
Namespace, uygulama veya PVC bazında geri yükleme
🔁
Mobility
Cluster'lar arası uygulama taşıma
03

Kurulum Gereksinimleri

  • Kubernetes 1.24+ veya OpenShift 4.12+
  • Helm 3.x kurulu
  • CSI volume driver (snapshot destekli)
  • VolumeSnapshotClass mevcut ve varsayılan olarak işaretli
  • Kasten K10 lisansı (Veeam Universal License ile gelir)
  • Nesne depolama dışa aktarımı için: Vault, S3 veya S3-uyumlu (MinIO/Siaflex)
ℹ️
Kasten Lisansı: Veeam Universal License (VUL) sahibiyseniz, Kasten K10 aynı lisans kapsamında kullanılabilir. ESH Bilişim'den mevcut VUL'unuzun Kasten'ı kapsayıp kapsamadığını teyit edebilirsiniz.
04

Helm ile Kasten K10 Kurulumu

1
Helm Deposunu Ekle ve Namespace Hazırla
helm repo add kasten https://charts.kasten.io/ helm repo update kubectl create namespace kasten-io
2
Ön Kontrol Betiğini Çalıştır
helm install k10-primer kasten/k10primer \ --namespace kasten-io \ --create-namespace # Sonuçları görüntüle kubectl get pods -n kasten-io kubectl logs -n kasten-io -l app=k10primer
3
K10'u Kur
helm install k10 kasten/k10 \ --namespace kasten-io \ --set auth.tokenAuth.enabled=true \ --set global.persistence.storageClass=standard \ --set prometheus.server.persistentVolume.storageClass=standard # Tüm pod'lar Running durumunda olmalı (5-10 dk) kubectl get pods -n kasten-io -w
4
Dashboard'a Eriş
kubectl --namespace kasten-io port-forward service/gateway 8080:8000 # Tarayıcıda: http://localhost:8080/k10/#/ # Erişim tokenını al kubectl --namespace kasten-io create token k10-k10 --duration=24h
05

Backup Policy Yapılandırması

1
Location Profile Oluşturun

K10 Dashboard → Settings → Locations → New Location Profile. Vault, S3 veya NFS hedef ekleyin. Vault için Veeam Data Cloud Vault erişiminizi burada yapılandırın.

2
Policy Tanımlayın
apiVersion: config.kio.kasten.io/v1alpha1 kind: Policy metadata: name: production-backup namespace: kasten-io spec: frequency: "@daily" retention: daily: 7 weekly: 4 monthly: 12 selector: matchExpressions: - key: k10.kasten.io/appnamespace operator: In values: ["production", "staging"] actions: - action: backup - action: export exportParameters: frequency: "@daily" exportData: enabled: true profile: name: vault-location-profile namespace: kasten-io
06

Vault ile Offsite Entegrasyon

Kasten K10, backup dışa aktarımlarını Veeam Data Cloud Vault'a göndererek Kubernetes backup'larınızın da değiştirilemez offsite kopyasını oluşturmanızı sağlar. Bu sayede Vault rehberindeki 3-2-1-1-0 kuralı Kubernetes iş yükleri için de geçerli olur.

# Vault konum profili oluşturma (K10 Dashboard alternatifi) apiVersion: config.kio.kasten.io/v1alpha1 kind: Profile metadata: name: vault-s3-profile namespace: kasten-io spec: type: Location locationSpec: credential: secretType: AwsAccessKey secret: apiVersion: v1 kind: Secret name: vault-creds namespace: kasten-io type: ObjectStore objectStore: name: veeam-vault-bucket objectStoreType: S3 region: vault-region endpoint: https://vault-endpoint.cloud.veeam.com
💡
Vault'taki Kasten dışa aktarımları değiştirilemez olduğundan, Kubernetes cluster'ının tamamen silinmesi veya fidye yazılımı saldırısından etkilenmesi durumunda bile dışa aktarımdan tam namespace restore yapabilirsiniz.
07

Uygulama Tutarlı Backup (Hooks)

Veritabanı gibi durum bilgisi tutan uygulamaların tutarlı backup alınması için Kasten, K10 Blueprint mekanizmasını kullanır. Blueprint, backup öncesi ve sonrasında çalıştırılacak komutu tanımlar.

apiVersion: cr.kanister.io/v1alpha1 kind: Blueprint metadata: name: postgresql-blueprint namespace: kasten-io actions: backupPrehook: phases: - func: KubeExec name: pgDump args: namespace: "{{ .Deployment.Namespace }}" pod: "{{ index .Deployment.Pods 0 }}" container: postgresql command: - bash - -c - "pg_dump -U postgres mydb > /backup/dump-$(date +%F).sql" backupPosthook: phases: - func: KubeExec name: cleanup args: command: ["bash","-c","echo Backup complete"]
08

Namespace Restore Senaryoları

SenaryoRestore TipiSüre
Yanlış Silinen ConfigMapNesne bazında restoreDakikalar
Uygulama Namespace'ini SıfırlaFull namespace restore5-15 dakika
PVC verisi bozulduPVC snapshot restore10-30 dakika
Cluster Tamamen ÇöktüExport'tan yeni cluster'a restore30-60 dakika
Cluster migrasyonuMobility (cluster-to-cluster)Veri boyutuna bağlı
# CLI ile namespace restore kubectl kasten restore \ --namespace production \ --from-backup production-backup-2025-06-10 \ --to-namespace production-restored
09

Multi-Cluster ve DR

Kasten K10'un Cluster Connect özelliği, birden fazla Kubernetes cluster'ını tek bir K10 konsolundan yönetmenizi sağlar. DR senaryosunda birincil cluster'ın dışa aktarımlarından ikincil cluster'a otomatik restore politikası tanımlanabilir.

1
Primary Cluster'da Export Policy Etkin Olsun

5. bölümdeki policy, her gün Vault'a dışa aktarım göndermelidir.

2
DR Cluster'da Import Policy Tanımla
apiVersion: config.kio.kasten.io/v1alpha1 kind: Policy metadata: name: dr-import-policy spec: frequency: "@daily" actions: - action: import importParameters: receiveString: "{{ .Profile.ExportReceiveString }}" profile: name: vault-location-profile namespace: kasten-io
10

RBAC ve Compliance

Kasten RolüYetkiler
k10-adminTüm K10 kaynakları, politika, konum profili
k10-ns-adminKendi namespace backup/restore işlemleri
k10-ns-viewerYalnızca görüntüleme
ESH Bilişim

Kasten K10 Lisans ve Kurulum Desteği

ESH Bilişim, Veeam Universal License kapsamında Kasten K10 lisanslama, OpenShift üzerinde kurulum, Blueprint geliştirme ve Vault ile entegrasyon konularında saha desteği sağlar.

Kasten K10KubernetesBackupOpenShiftVeeam
↑ Başa Dön