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


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

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

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

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

Примечание.

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

Необходимые компоненты

Перед восстановлением кластера AKS убедитесь, что выполнены следующие предварительные требования:

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

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

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

Инициализация переменных для команд ресурсов для восстановления кластера AKS

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

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

    $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

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

Чтобы получить соответствующие точки восстановления, выполните следующие командлеты:

  1. Извлеките все экземпляры с помощью командлета 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
  1. После обнаружения экземпляра получите соответствующую точку восстановления. Из выходного массива данного командлета необходимо восстановить третий экземпляр резервного копирования.

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

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

Чтобы подготовить запрос на восстановление, выполните следующие командлеты:

  1. Подготовьте конфигурацию восстановления и определите элементы, которые будут восстановлены в целевом кластере AKS с помощью командлета New-AzDataProtectionRestoreConfigurationClientObject .

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Подготовьте запрос восстановления со всеми соответствующими сведениями с помощью командлета 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]
    

Активация восстановления для кластера AKS

Чтобы активировать операцию восстановления, выполните следующие командлеты:

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

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

    Примечание.

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

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

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

Отслеживание задания восстановления для кластера AKS

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

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

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

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