Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Kubernetes kümesinin Azure CLI kullanılarak Azure Backup tarafından oluşturulan bir geri yükleme noktasından nasıl geri yükleneceği açıklanır. Aks kümesini Azure PowerShell kullanarak da geri yükleyebilirsiniz.
Azure Backup artık kümeye yüklenmesi gereken bir yedekleme uzantısı kullanarak AKS kümelerini (küme kaynakları ve kümeye bağlı kalıcı birimler) yedeklemenize olanak tanır. Yedekleme kasası, yedekleme ve geri yükleme işlemlerini gerçekleştirmek için bu Yedekleme Uzantısı aracılığıyla kümeyle iletişim kurar.
Hem Original-Location Kurtarma (OLR) (yedeklenen AKS kümesinde geri yükleme) hem deAlternate-Location Kurtarma (ALR) (farklı bir AKS kümesinde geri yükleme) gerçekleştirebilirsiniz. Geri yüklenecek öğeleri Item-Level Kurtarma (ILR) olan yedeklemeden de seçebilirsiniz.
Uyarı
Bir geri yükleme işlemi başlatmadan önce, hedef kümede Yedekleme Uzantısı yüklü olmalı ve Yedekleme kasası için Güvenilen Erişim etkinleştirilmiş olmalıdır. Daha fazla bilgi edinin.
Başlamadan önce
AKS kümesini geri yüklemeye başlamadan önce aşağıdaki ayrıntıları gözden geçirin:
AKS yedekleme, özgün AKS kümesine (yedeklenen) ve alternatif bir AKS kümesine geri yüklemenizi sağlar. AKS yedeklemesi, tam geri yükleme ve öğe düzeyinde geri yükleme gerçekleştirmenizi sağlar. Geri yüklenecek küme kaynaklarını temel alan parametreleri tanımlamak için geri yükleme yapılandırmalarını kullanabilirsiniz.
Yedekleme Uzantısını hedef AKS kümesine yüklemeniz gerekir. Ayrıca, Backup kasası ve AKS kümesi arasında Güvenilen Erişimi etkinleştirmeniz gerekir.
Hedef AKS kümesi sürümü yedekleme sırasında kullanılan sürümden farklıysa, geri yükleme işlemi başarısız olabilir veya daha yeni küme sürümünde kullanım dışı bırakılan kaynaklar gibi çeşitli senaryolar için uyarılarla tamamlanabilir. Kasa katmanından geri yüklüyorsanız, uygulama kaynaklarını hedef kümeye geri yüklemek için hazırlama konumundaki sulu kaynakları kullanabilirsiniz.
Sınırlamalar ve desteklenen senaryolar hakkında daha fazla bilgi için bkz . destek matrisi.
Hedef AKS kümesini doğrulama ve hazırlama
Geri yükleme işlemini başlatmadan önce AKS kümesinin geri yükleme için hazır olduğunu doğrulamanız gerekir. Hedef AKS kümesi ile Yedekleme kasası arasında Güvenilen Erişim etkinleştirilmiş olarak yedeklemelerin depolandığı/hidratlandığı depolama hesabında izne sahip uzantıyla birlikte yüklenecek Yedekleme Uzantısını içerir.
AKS kümesini geri yükleme için doğrulamak ve hazırlamak için aşağıdaki komutları çalıştırın:
Kümede Yedekleme Uzantısı'nın yüklü olup olmadığını kontrol edin.
az k8s-extension show --name azure-aks-backup --cluster-type managedClusters --cluster-name $targetakscluster --resource-group $aksclusterresourcegroupUzantı yüklüyse, yedeklemelerin depolandığı depolama hesabında doğru izinlere sahip olup olmadığını denetleyin.
az role assignment list --all --assignee $(az k8s-extension show --name azure-aks-backup --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv)Rol atanmamışsa rolü atayın.
az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Account Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccountYedekleme Uzantısı yüklü değilse, yedeklemelerin giriş olarak depolandığı depolama hesabı ve blob kapsayıcısı ile aşağıdaki uzantı yükleme komutunu çalıştırın.
az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --release-train stable --configuration-settings blobContainer=$blobcontainer storageAccount=$storageaccount storageAccountResourceGroup=$storageaccountresourcegroup storageAccountSubscriptionId=$subscriptionIdDepolama hesabındaki uzantıya gerekli rolü atayın.
az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccount
Güvenilir erişimi kontrol edin
Yedekleme kasası ile Hedef AKS kümesi arasında Güvenilen Erişim'in etkinleştirilip etkinleştirilmediğini denetlemek için aşağıdaki komutu çalıştırın:
az aks trustedaccess rolebinding list --resource-group $aksclusterresourcegroup --cluster-name $targetakscluster
Aksi takdirde, Güvenilir Erişim aşağıdaki komutla etkinleştirilebilir:
az aks trustedaccess rolebinding create --cluster-name $targetakscluster --name backuprolebinding --resource-group $aksclusterresourcegroup --roles Microsoft.DataProtection/backupVaults/backup-operator --source-resource-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/BackupVaults/$backupvault
AKS kümesine geri yükleme
AKS kümesine geri yüklemek için aşağıdaki bölümlere bakın.
İlgili kurtarma noktasını getir
İlgili kurtarma noktasını getirmek için aşağıdaki komutları çalıştırın:
AKS kümesiyle ilişkili tüm örnekleri getirin ve ilgili örneği tanımlayın.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$aksclusterÖrnek tanımlandıktan sonra ilgili kurtarma noktasını getirin.
az dataprotection recovery-point list --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --vault-name $backupvaultYedeklemeleri ikincil bölgeye geri yüklemek istiyorsanız, bu bölgede kullanılabilen kurtarma noktalarını belirlemek için bayrağı
--use-secondary-regionkullanın.az dataprotection recovery-point list --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --vault-name $backupvault --use-secondary-region true
Geri yükleme isteğini hazırlayın
Hedef AKS kümesine geri yüklenecek öğeleri tanımlayan geri yükleme yapılandırmasını hazırlamak için komutu çalıştırın az dataprotection backup-instance initialize-restoreconfig .
az dataprotection backup-instance initialize-restoreconfig --datasource-type AzureKubernetesService >restoreconfig.json
{
"conflict_policy": "Skip",
"excluded_namespaces": null,
"excluded_resource_types": null,
"include_cluster_scope_resources": true,
"included_namespaces": null,
"included_resource_types": null,
"label_selectors": null,
"namespace_mappings": null,
"object_type": "KubernetesClusterRestoreCriteria",
"persistent_volume_restore_mode": "RestoreWithVolumeData",
"resource_modifier_reference": null,
"restore_hook_references": null,
"staging_resource_group_id": null,
"staging_storage_account_id": null
}
Geri yükleme yapılandırması aşağıdaki öğelerden oluşur:
conflict_policy: Geri yükleme sırasında, kümede yedeklemedekiyle aynı ada sahip bir kaynak varsa, çakışmanın nasıl ele alınacağını seçebilirsiniz. İki seçeneğiniz vardır: Yedekleme öğesini geri yüklemez Atla veya küme içi kaynağın değiştirilebilir alanlarını yedekte depolanan kaynakla değiştiren Güncelleştir.excluded_namespace: Kümeye geri yüklenmesi dışında bırakılacak ad alanlarını listeleyebilirsiniz. Bu ad alanlarını temel alan kaynak geri yüklenmez.excluded_resource_types: Kümeye geri yüklenmek üzere dışlanacak kaynak türlerini listeleyebilirsiniz. Girişteki değerler, anahtar değer çifti olarak API Grup Türü olarak sağlanmalıdır.include_cluster_scope_resources: Değeri true veya false olarak ayarlayarak küme kapsamlı kaynakları geri yüklemek isteyip istemediğinize karar verebilirsiniz.included_namespaces: Yalnızca kümeye geri yüklemenin bir parçası olarak dahil edilecek ad alanlarını listeleyebilirsiniz. Bu ad alanlarının temelini oluşturan kaynak geri yüklenecektir.excluded_resource_types: Yalnızca kümeye geri yüklenmek üzere dahil edilecek kaynak türlerini listeleyebilirsiniz. Girişteki değerler, anahtar değer çifti olarak API Grup Türü olarak sağlanmalıdır.label_selectors: İçlerinde belirli etiketlerle geri yüklenecek kaynakları seçebilirsiniz. Giriş değeri, anahtar değer çifti olarak sağlanmalıdır.namespace_mappings: Ad alanını (ve temel kaynakları) hedef kümedeki farklı bir ad alanına eşleyebilirsiniz. Hedef ad alanı kümede yoksa, uzantı tarafından yeni bir ad alanı oluşturulur. Giriş değeri, anahtar değer çifti olarak sağlanmalıdır.object_type: Bu değişken, geri yükleme yapılandırmasının İşletimsel Katmanda mı yoksa Kasa Katmanında mı depolanan bir kurtarma noktası için tasarlandığını belirtir. Kurtarma noktası İşletimsel Katman'daysa değeri KubernetesClusterRestoreCriteria olarak ayarlayın. Kurtarma noktası Kasa Katmanı'ndaysa veya ikincil bir bölgeye geri yükleniyorsa değeri KubernetesClusterVaultTierRestoreCriteria olarak ayarlayın.persistent_volume_restore_mode: Yedeklenen kalıcı birimleri geri yüklemek isteyip istemediğinize karar vermek için bu değişkeni kullanabilirsiniz. Kabul edilen değerler şunlardır: RestoreWithVolumeData, RestoreWithoutVolumeDataresource_modifier_reference: Bu değişkenle kümede dağıtılan Kaynak Değiştirici kaynağına başvurabilirsiniz. Giriş değeri, kaynağın dağıtıldığı Ad Alanı'nın ve yaml dosyasının adının bir anahtar değer çiftidir.restore_hook_references: Bu değişkenle kümede dağıtılan Geri Yükleme Kancası kaynağına başvurabilirsiniz. Giriş değeri, kaynağın dağıtıldığı Ad Alanının ve yaml dosyalarının adının bir anahtar değer çiftidir.staging_resource_group_id: Kasa katmanında depolanan yedeklemeyi geri yüklüyorsanız, hazırlama konumu olarak kaynak grubunun kimliğini sağlamanız gerekir. Bu kaynak grubunda, yedeklenen kalıcı birimler hedef kümeye geri yüklenmeden önce nemlendirilir.staging_storage_account_id: Kasa katmanında depolanan yedeklemeyi geri yüklüyorsanız, hazırlama konumu olarak bir depolama hesabı kimliği sağlamanız gerekir. Bu kaynak grubunda, yedeklenen kubernetes kaynakları hedef kümeye geri yüklenmeden önce sulandırılır.
Şimdi, geri yükleme isteğini ilgili tüm ayrıntılarla hazırlayın. Yedeklemeyi özgün kümeye geri yüklüyorsanız aşağıdaki komutu çalıştırın:
az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureKubernetesService --restore-location $region --source-datastore OperationalStore --recovery-point-id $recoverypointid --restore-configuration restoreconfig.json --backup-instance-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid >restorerequestobject.json
Geri yükleme için hedef AKS kümesi özgün kümeden farklıysa aşağıdaki komutu çalıştırın:
az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureKubernetesService --restore-location $region --source-datastore OperationalStore --recovery-point-id $recoverypointid --restore-configuration restoreconfig.json --target-resource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$targetakscluster >restorerequestobject.json
Hedef küme ikincil bölgedeyse bayrağını --use-secondary-regionkullanın.
az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureKubernetesService --restore-location $region --source-datastore OperationalStore --recovery-point-id $recoverypointid --restore-configuration restoreconfig.json --target-resource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$targetakscluster --use-secondary-region true >restorerequestobject.json
Uyarı
VaultStore ile --source-datastore kasa katmanından bir kurtarma noktası seçtiyseniz, geri yükleme yapılandırmasında bir depolama hesabı ve anlık görüntü kaynak grubu sağlayın.
İkincil bölgedeki kümeye geri yüklemeye çalışıyorsanız, bayrağı --restore-location ikincil bölgenin adı ve --source-datastore VaultStore olarak ayarlayın.
Artık JSON nesnesini gereksinimlerinize göre güncelleştirebilir ve ardından aşağıdaki komutu çalıştırarak nesneyi doğrulayabilirsiniz:
az dataprotection backup-instance validate-for-restore --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --restore-request-object restorerequestobject.json --vault-name $backupvault
Hedef küme ikincil bölgedeyse bayrağını --use-secondary-regionkullanın.
az dataprotection backup-instance validate-for-restore --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --restore-request-object restorerequestobject.json --vault-name $backupvault --use-secondary-region true
Bu komut, AKS Kümesi ve Yedekleme kasasının geri yükleme gerçekleştirmek için gereken farklı kaynaklarda gerekli rollere sahip olup olmadığını denetler. Eksik roller nedeniyle doğrulama başarısız olursa, aşağıdaki komutu çalıştırarak bunları atayabilirsiniz:
az dataprotection backup-instance update-msi-permissions --datasource-type AzureKubernetesService --operation Restore --permissions-scope Resource --resource-group $backupvaultresourcegroup --vault-name $backupvault --restore-request-object restorerequestobject.json --snapshot-resource-group-id /subscriptions/$subscriptionId/resourceGroups/$snapshotresourcegroup
Uyarı
Yedekleme işlemi sırasında, Yedekleme kasasına ve AKS kümesine, geri yüklemeyi gerçekleştirmek için belirli roller atanması gerekir.
- Hedef AKS kümesinin Anlık Görüntü Kaynak Grubunda Katkıda Bulunan rolü olmalıdır.
- Yedekleme Uzantısı ile eklenen Kullanıcı Kimliği, İşletimsel Katman durumunda yedeklemelerin depolandığı depolama hesabında ve Kasa Katmanı söz konusu olduğunda *hazırlama depolama hesabındaDepolama Blob Verileri Katkıda Bulunanı rollerine sahip olmalıdır.
- Yedekleme kasası, İşletimsel Katmandan geri yükleme durumunda Hedef AKS kümesinde ve Anlık Görüntü Kaynak Grubu'nda bir Okuyucu rolüne sahip olmalıdır.
- Yedekleme kasası, Kasa Katmanı'ndan yedeklemenin geri yüklenmesi durumunda Hazırlama Kaynak Grubu'ndaKatkıda Bulunan rolüne sahip olmalıdır.
- Yedekleme kasası, Kasa Katmanından yedeklemenin geri yüklenmesi durumunda Hazırlama Depolama Hesabında bir Depolama Hesabı Katkıda Bulunanı ve Depolama Blob Veri Sahibi rolüne sahip olmalıdır.
Geri yüklemeyi tetikleme
Rol ataması tamamlandıktan sonra, geri yükleme nesnesini bir kez daha doğrulamanız gerekir. Bundan sonra, aşağıdaki komutu çalıştırarak bir geri yükleme işlemini tetikleyebilirsiniz:
az dataprotection backup-instance restore trigger --backup-instance-name $backupinstancename --restore-request-object restorerequestobject.json
Hedef küme ikincil bölgedeyse bayrağını --use-secondary-regionkullanın.
az dataprotection backup-instance restore trigger --backup-instance-name $backupinstancename --restore-request-object restorerequestobject.json --use-secondary-region true
Uyarı
Hazırlama kaynak grubunda ve depolama hesabında hidratlanan kaynaklar, geri yükleme işi tamamlandıktan sonra otomatik olarak temizlenmez ve el ile silinir.
İzleme işi
Komutunu kullanarak az dataprotection job geri yükleme işlerini izleyebilirsiniz. Tüm görevleri listeleyebilir ve belirli bir görevin detaylarını getirebilirsiniz.
Tüm abonelikler, kaynak grupları ve Backup kasalarındaki tüm işleri izlemek için Kaynak Grafı'nı da kullanabilirsiniz.
az dataprotection job list-from-resourcegraph İlgili işi almak için komutu kullanın.
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation Restore