Поделиться через


Восстановление Служба Azure Kubernetes с помощью PowerShell

В этой статье описывается, как восстановить кластер Azure Kubernetes из точки восстановления, созданной Azure Backup с помощью Azure PowerShell.

Azure Backup теперь позволяет создавать резервные копии кластеров AKS (ресурсы кластера и постоянные тома, подключенные к кластеру) с помощью расширения резервного копирования, которое должно быть установлено в кластере. Хранилище резервных копий взаимодействует с кластером с помощью этого расширения резервного копирования для выполнения операций резервного копирования и восстановления.

Вы можете выполнить восстановление исходного расположения (OLR) (восстановление в кластере AKS, который был резервирован) и Альтернативное восстановление расположения (ALR) (восстановление в другом кластере AKS). Вы также можете выбрать элементы, которые нужно восстановить из резервной копии, которая является восстановлением на уровне элементов (ILR).

Примечание.

Перед началом операции восстановления целевой кластер должен установить расширение резервного копирования и включить доверенный доступ для хранилища резервных копий. Подробнее.

Инициализировать переменные с необходимыми сведениями, связанными с каждым ресурсом, используемым в командах:

  • Идентификатор подписки в Хранилище резервных копий

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Группа ресурсов, к которой принадлежит Backup Vault

    $vaultRgName = "testBkpVaultRG"
    
  • Имя хранилища резервных копий

    $vaultName = "TestBkpVault"
    
  • Регион, к которому принадлежит Хранилище резервных копий

    $restoreLocation = "vaultRegion" #example eastus
    
  • Идентификатор целевого кластера AKS, если восстановление будет выполнено в альтернативном кластере AKS.

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

Перед началом работы

  • Резервное копирование AKS позволяет восстановить исходный кластер AKS (который был создан) и в альтернативный кластер AKS. Резервное копирование AKS позволяет выполнять полное восстановление и восстановление на уровне элементов. Конфигурации восстановления можно использовать для определения параметров на основе ресурсов кластера, которые будут восстановлены.

  • Необходимо установить расширение резервного копирования в целевом кластере AKS. Кроме того, необходимо включить доверенный доступ между хранилищем резервного копирования и кластером AKS.

Дополнительные сведения об ограничениях и поддерживаемых сценариях см. в матрице поддержки.

Восстановление в кластер AKS

Получение соответствующей точки восстановления

Извлеките все экземпляры с помощью командлета Get-AzDataProtectionBackupInstance и определите соответствующий экземпляр.

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

Можно также использовать Az.Resourcegraph и Search-AzDataProtectionBackupInstanceInAzGraph командлеты для поиска между экземплярами в нескольких хранилищах и подписках.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured

После обнаружения экземпляра получите соответствующую точку восстановления. Предполагается, что из выходного массива приведенной выше команды необходимо восстановить третий экземпляр резервного копирования.

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

Подготовка запроса на восстановление

New-AzDataProtectionRestoreConfigurationClientObject Используйте командлет для подготовки конфигурации восстановления и определения элементов для восстановления в целевом кластере AKS.

$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}

Затем используйте Initialize-AzDataProtectionRestoreRequest командлет для подготовки запроса на восстановление со всеми соответствующими сведениями.

Если вы хотите выполнить восстановление исходного кластера AKS, используйте приведенный ниже формат для командлета.

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

Если вы хотите выполнить восстановление в альтернативном кластере AKS, используйте приведенный ниже формат для командлета.

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

Запуск процесса восстановления

Перед активацией операции восстановления проверьте созданный ранее запрос на восстановление.

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

Примечание.

Во время операции восстановления хранилище резервных копий и кластер AKS должны иметь определенные роли, назначенные для выполнения восстановления:

  1. Целевой кластер AKS должен иметь роль участника в группе ресурсов моментальных снимков.
  2. Удостоверение пользователя, подключенное к расширению резервного копирования, должно иметь роли участника учетной записи хранения в учетной записи хранения, в которой хранятся резервные копии.
  3. Хранилище резервных копий должно иметь роль читателя в целевом кластере AKS и группе ресурсов моментальных снимков.

Теперь используйте Start-AzDataProtectionBackupInstanceRestore командлет, чтобы активировать операцию восстановления с подготовленным ранее запросом.

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

Отслеживание заданий

Отслеживайте все задания с помощью командлета Get-AzDataProtectionJob . Можно вывести список всех заданий и получить сведения о конкретном задании. Вы также можете отслеживать Az.ResourceGraph все задания во всех хранилищах резервных копий.

Используйте командлет, чтобы получить соответствующее Search-AzDataProtectionJobInAzGraph задание, которое может находиться в любом хранилище резервных копий.

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

Следующие шаги