Återställa Azure Kubernetes Service med PowerShell
I den här artikeln beskrivs hur du återställer Azure Kubernetes-kluster från en återställningspunkt som skapats av Azure Backup med Azure PowerShell.
Azure Backup stöder säkerhetskopiering av AKS-kluster, inklusive klusterresurser och anslutna beständiga volymer, med hjälp av ett säkerhetskopieringstillägg. Det här tillägget måste installeras i klustret, vilket gör att Backup Vault kan kommunicera med det för att utföra säkerhetskopierings- och återställningsåtgärder.
Du kan utföra Original-Location Recovery (OLR) i samma AKS-kluster eller Alternate-Location Recovery (ALR) i ett annat AKS-kluster. Med återställning på objektnivå (ILR) kan du välja specifika objekt som ska återställas från säkerhetskopian.
Kommentar
Innan du påbörjar en återställningsåtgärd kontrollerar du att målklustret har säkerhetskopieringstillägget installerat och betrodd åtkomst aktiverat för säkerhetskopieringsvalvet. Läs mer.
Förutsättningar
Innan du återställer ett AKS-kluster kontrollerar du att du uppfyller följande krav:
Med AKS-säkerhetskopiering kan du återställa till det ursprungliga AKS-klustret (som säkerhetskopierades) och till ett alternativt AKS-kluster. Med AKS-säkerhetskopiering kan du utföra en fullständig återställning och återställning på objektnivå. Du kan använda återställningskonfigurationer för att definiera parametrar baserat på klusterresurserna för återställning.
Du måste installera säkerhetskopieringstillägget i AKS-målklustret. Du måste också aktivera betrodd åtkomst mellan Backup-valvet och AKS-klustret.
Mer information om begränsningar och scenarier som stöds finns i supportmatrisen.
Initiera variabler för resurskommandon
Här anger du nödvändig information för varje resurs som ska användas i dina kommandon.
Prenumerations-ID för Säkerhetskopieringsvalvet
$vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
Resursgrupp som Backup Vault tillhör
$vaultRgName = "testBkpVaultRG"
Namnet på säkerhetskopieringsvalvet
$vaultName = "TestBkpVault"
Region som Backup Vault tillhör
$restoreLocation = "vaultRegion" #example eastus
ID för aks-målklustret, om återställningen utförs till ett alternativt AKS-kluster
$targetAKSClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.ContainerService/managedClusters/PSAKSCluster2"
Återställa till ett AKS-kluster
Hämta relevant återställningspunkt
Kör följande cmdletar för att hämta relevanta återställningspunkter:
Hämta alla instanser med hjälp av cmdleten
Get-AzDataProtectionBackupInstance
och identifiera relevant instans.$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
Om du vill söka mellan instanser i flera valv och prenumerationer använder Az.Resourcegraph
du och Search-AzDataProtectionBackupInstanceInAzGraph
cmdletar.
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -ProtectionStatus ProtectionConfigured
När instansen har identifierats hämtar du relevant återställningspunkt. Från utdatamatrisen för den angivna cmdleten ska den tredje säkerhetskopieringsinstansen återställas.
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
Förbereda återställningsbegäran
Kör följande cmdletar för att förbereda återställningsbegäran:
Förbered återställningskonfigurationen och definiera de objekt som ska återställas till AKS-målklustret med hjälp av cmdleten
New-AzDataProtectionRestoreConfigurationClientObject
.$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -NamespaceMapping @{"sourceNamespace"="targetNamespace"}
Förbered återställningsbegäran med all relevant information med hjälp av cmdleten
Initialize-AzDataProtectionRestoreRequest
.Använd följande cmdlet-format för att återställa till det ursprungliga AKS-klustret:
$aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
Använd följande cmdlet-format för att återställa till ett alternativt AKS-kluster:
$aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType AlternateLocation -TargetResourceId $targetAKSClusterId -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
Utlös återställningen
Kör följande cmdletar för att utlösa återställningsåtgärden:
Verifiera återställningsbegäran som skapades tidigare.
$validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -RestoreRequest $aksRestoreRequest -Name $AllInstances[2].BackupInstanceName
Kommentar
Under återställningsåtgärden måste säkerhetskopieringsvalvet och AKS-klustret ha vissa roller tilldelade för att utföra återställningen:
- AKS-målklustret ska ha rollen Deltagare i resursgruppen för ögonblicksbilder.
- Användaridentiteten som är kopplad till säkerhetskopieringstillägget ska ha rollerna För lagringskontodeltagare på lagringskontot där säkerhetskopior lagras.
- Säkerhetskopieringsvalvet bör ha en läsarroll i AKS-målklustret och resursgruppen för ögonblicksbilder.
Så här utlöser du återställningsåtgärden med den begäran som förbereddes tidigare med hjälp av cmdleten
Start-AzDataProtectionBackupInstanceRestore
.$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
Spåra återställningsjobbet
Spåra alla jobb med hjälp av cmdleten Get-AzDataProtectionJob
. Du kan visa en lista över alla jobb och hämta en viss jobbinformation. Du kan också använda Az.ResourceGraph för att spåra jobb i alla säkerhetskopieringsvalv.
Använd cmdleten Search-AzDataProtectionJobInAzGraph
för att hämta relevant jobb i alla Backup-valv.
$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore
Nästa steg
- Hantering av säkerhetskopieringar av Azure Kubernetes Service-kluster.
- Översikt över säkerhetskopiering av Azure Kubernetes Service-kluster.