Aracılığıyla paylaş


PowerShell kullanarak Azure Kubernetes Service'i geri yükleme

Bu makalede, Azure PowerShell kullanılarak Azure Backup tarafından oluşturulan bir geri yükleme noktasından Azure Kubernetes kümesinin nasıl geri yükleneceği açıklanır.

Azure Backup, bir yedekleme uzantısı kullanarak küme kaynakları ve bağlı kalıcı birimler de dahil olmak üzere AKS kümelerini yedeklemeyi destekler. Yedekleme ve geri yükleme işlemlerini gerçekleştirmek için Backup Vault'un onunla iletişim kurmasını sağlayan bu uzantı kümeye yüklenmelidir.

Aynı AKS kümesinde Özgün Konum Kurtarma (OLR) veya farklı bir AKS kümesinde Alternatif Konum Kurtarma (ALR) gerçekleştirebilirsiniz. Öğe Düzeyi Kurtarma (ILR), yedekten geri yükleneceği belirli öğeleri seçmenize olanak tanır.

Not

Geri yükleme işlemini başlatmadan önce hedef kümede Yedekleme Uzantısı'nın yüklü olduğundan ve Backup kasası için Güvenilen Erişim'in etkinleştirildiğinden emin olun. Daha fazla bilgi edinin.

Önkoşullar

AKS kümesini geri yüklemeden önce aşağıdaki önkoşulları karşıladığınızdan emin olun:

  • 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ükleme için 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.

Sınırlamalar ve desteklenen senaryolar hakkında daha fazla bilgi için bkz . destek matrisi.

Kaynak Komutları İçin Değişkenleri Başlat

Burada, komutlarınızda kullanılacak her kaynak için gerekli ayrıntıları sağlayın.

  • Backup Vault'un Abonelik Kimliği

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Backup Vault'un ait olduğu Kaynak Grubu

    $vaultRgName = "testBkpVaultRG"
    
  • Backup Kasasının adı

    $vaultName = "TestBkpVault"
    
  • Backup Kasası'nın ait olduğu bölge

    $restoreLocation = "vaultRegion" #example eastus
    
  • Geri yüklemenin alternatif bir AKS kümesine gerçekleştirilmesi durumunda hedef AKS kümesinin kimliği

    $targetAKSClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.ContainerService/managedClusters/PSAKSCluster2"
    

AKS kümesine geri yükleme

İlgili kurtarma noktasını getir

İlgili kurtarma noktalarını getirmek için aşağıdaki cmdlet'leri çalıştırın:

  1. cmdlet'ini Get-AzDataProtectionBackupInstance kullanarak tüm örnekleri getirin ve ilgili örneği tanımlayın.

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
    

Birden çok kasadaki ve abonelikteki örnekler arasında arama yapmak için Az.Resourcegraph ve Search-AzDataProtectionBackupInstanceInAzGraph cmdlet'lerini kullanın.

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. Örnek tanımlandıktan sonra ilgili kurtarma noktasını getirin. Verilen cmdlet'in çıkış dizisinden üçüncü yedekleme örneğinin geri yüklenmesi gerekir.

    $rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
    

Geri yükleme isteğini hazırlama

Geri yükleme isteğini hazırlamak için aşağıdaki cmdlet'leri çalıştırın:

  1. Geri yükleme yapılandırmasını hazırlayın ve cmdlet'ini kullanarak New-AzDataProtectionRestoreConfigurationClientObject hedef AKS kümesine geri yüklenecek öğeleri tanımlayın.

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Initialize-AzDataProtectionRestoreRequest cmdlet'ini kullanarak geri yükleme isteğini tüm ilgili ayrıntılarla hazırlayın.

    Özgün AKS kümesine geri yüklemek için aşağıdaki cmdlet biçimini kullanın:

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

    Alternatif aks kümesine geri yüklemek için aşağıdaki cmdlet biçimini kullanın:

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType AlternateLocation -TargetResourceId $targetAKSClusterId -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

Geri yüklemeyi tetikleme

Geri yükleme işlemini tetikleme için aşağıdaki cmdlet'leri çalıştırın:

  1. Daha önce oluşturulan geri yükleme isteğini doğrulayın.

    $validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -RestoreRequest $aksRestoreRequest -Name $AllInstances[2].BackupInstanceName
    

    Not

    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, yedeklemelerin depolandığı depolama hesabında Depolama Hesabı Katkıda Bulunanı rollerine sahip olmalıdır.
    • Backup kasasının Hedef AKS kümesindeve Anlık Görüntü Kaynak Grubunda Okuyucu rolü olmalıdır.
  2. Cmdlet'ini kullanarak daha önce hazırlanmış istekle geri yükleme işlemini tetikleme Start-AzDataProtectionBackupInstanceRestore .

    $restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
    

Geri yükleme işini izleme

cmdlet'ini Get-AzDataProtectionJob kullanarak tüm işleri izleyin. Tüm işleri listeleyebilir ve belirli bir iş ayrıntısı getirebilirsiniz. Alternatif olarak, tüm Backup kasalarında işleri izlemek için Az.ResourceGraph kullanın.

Herhangi bir Backup kasasında ilgili işi almak için Search-AzDataProtectionJobInAzGraph cmdlet'ini çalıştırın.

$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore

Sonraki adımlar