Delen via


Een back-up maken van Azure Kubernetes Service met behulp van PowerShell

In dit artikel wordt beschreven hoe u Azure Kubernetes Service (AKS) configureert en er een back-up van maakt met behulp van Azure PowerShell.

Met Azure Backup kunt u nu een back-up maken van AKS-clusters (clusterbronnen en permanente volumes die aan het cluster zijn gekoppeld) met behulp van een back-upextensie die in het cluster moet worden geïnstalleerd. Back-upkluis communiceert met het cluster via deze back-upextensie om back-up- en herstelbewerkingen uit te voeren.

Voordat u begint

Voordat u een back-up maakt van een AKS-cluster, moet u de volgende vereisten controleren:

  • Momenteel ondersteunt AKS-back-up alleen permanente volumes op basis van Azure Disk (ingeschakeld door CSI-stuurprogramma). De back-ups worden alleen opgeslagen in het operationele gegevensarchief (in uw tenant) en worden niet verplaatst naar een kluis. De Backup-kluis en het AKS-cluster moeten zich in dezelfde regio bevinden.

  • AKS-back-up maakt gebruik van een blobcontainer en een resourcegroep om de back-ups op te slaan. De blobcontainer bevat de AKS-clusterresources die erin zijn opgeslagen, terwijl de permanente volumemomentopnamen worden opgeslagen in de resourcegroep. Het AKS-cluster en de opslaglocaties moeten zich in dezelfde regio bevinden. Meer informatie over het maken van een blobcontainer.

  • Op dit moment ondersteunt AKS-back-up één keer per dag back-up. Het biedt ook ondersteuning voor frequentere back-ups (in intervallen van 4, 8 en 12 uur) per dag. Met deze oplossing kunt u uw gegevens maximaal 360 dagen bewaren voor herstel. Meer informatie over het maken van een back-upbeleid.

  • U moet de back-upextensie installeren om back-up- en herstelbewerkingen op een AKS-cluster te configureren. Meer informatie over de back-upextensie.

  • Zorg ervoor dat Microsoft.KubernetesConfiguration, Microsoft.DataProtectionen Microsoft.ContainerService zijn geregistreerd voor uw abonnement voordat u de back-upconfiguratie en herstelbewerkingen start.

  • Zorg ervoor dat u alle vereisten uitvoert voordat u een back-up- of herstelbewerking voor AKS-back-up start.

Zie de ondersteuningsmatrix voor meer informatie over de ondersteunde scenario's, beperkingen en beschikbaarheid.

Een Backup-kluis maken

Een Backup-kluis is een beheerentiteit in Azure waarin back-upgegevens worden opgeslagen voor verschillende nieuwere workloads die door Azure Backup worden ondersteund, zoals Azure Database for PostgreSQL-servers en Azure Disks. Met back-upkluizen kunt u uw back-upgegevens eenvoudig ordenen terwijl de beheeroverhead wordt geminimaliseerd. Ze zijn gebaseerd op het Azure Resource Manager-model, dat verbeterde mogelijkheden biedt om back-upgegevens te beveiligen. Voordat u een Backup-kluis maakt, kiest u de opslagredundantie van de gegevens in de kluis en maakt u vervolgens de Back-upkluis met die opslagredundantie en de locatie.

Hier maken we een Backup Vault TestBkpVault in de regio VS - west onder de resourcegroep testBkpVaultRG. Gebruik de New-AzDataProtectionBackupVault cmdlet om een Backup-kluis te maken. Meer informatie over het maken van een Backup-kluis.

Notitie

Hoewel de geselecteerde kluis mogelijk de instelling voor globale redundantie heeft, ondersteunt back-up voor AKS momenteel alleen operationele laag . Alle back-ups worden opgeslagen in uw abonnement in dezelfde regio als die van het AKS-cluster en worden niet gekopieerd naar de back-upkluisopslag.

  1. Voer de volgende cmdlet uit om de opslaginstellingen van de Backup-kluis te definiëren:

    Notitie

    De kluis wordt gemaakt met alleen ondersteuning voor lokale redundantie en operationele gegevensopslag .

    $storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
    
  2. Als u de Backup-kluis wilt maken op basis van de eerder genoemde details, voert u de volgende cmdlet uit:

    New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
    $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
    

Zodra het maken van de kluis is voltooid, maakt u een back-upbeleid om AKS-clusters te beveiligen.

Maak een back-upbeleid

Met Azure Backup kunt u back-upbeleid maken voor AKS-clusterbeveiliging met dagelijkse back-ups of meerdere back-ups per dag.

Voer de volgende cmdlets uit om een back-upbeleid voor AKS-cluster te maken:

  1. Haal de beleidssjabloon op met behulp van de cmdlet Get-AzDataProtectionPolicyTemplate en controleer de interne onderdelen van een back-upbeleid voor de back-up van AKS. Met deze opdracht wordt een standaardbeleidssjabloon geretourneerd voor een bepaald gegevensbrontype. Gebruik deze beleidssjabloon om een nieuw beleid te maken.

    $policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
    

    De beleidssjabloon bestaat uit een triggercriteria (waarmee wordt bepaald welke factoren de back-uptaak moeten worden geactiveerd) en een levenscyclus (waarmee wordt bepaald wanneer de back-ups moeten worden verwijderd, gekopieerd of verplaatst). In AKS-back-up is de standaardwaarde voor trigger een geplande trigger per uur elke 4 uur (PT4H) en de retentie van elke back-up is 7 dagen.

    $policyDefn.PolicyRule[0]. Trigger | fl
    
    ObjectType: ScheduleBasedTriggerContext
    ScheduleRepeatingTimeInterval: {R/2023-04-05T13:00:00+00:00/PT4H}
    TaggingCriterion: {Default}
    
    $policyDefn.PolicyRule[1]. Lifecycle | fl
    
    DeleteAfterDuration: P7D
    DeleteAfterObjectType: AbsoluteDeleteOption
    SourceDataStoreObjectType : DataStoreInfoBase
    SourceDataStoreType: OperationalStore
    TargetDataStoreCopySetting:
    
  2. Geef voor de dagelijkse back-upfrequentie het tijdstip op waarop uw back-ups moeten worden gemaakt.

    Belangrijk

    Het tijdstip van de dag geeft de begintijd van de back-up aan en niet het tijdstip waarop de back-up is voltooid. De benodigde tijd voor het voltooien van de back-upbewerking is afhankelijk van verschillende factoren, waaronder het aantal en de grootte van de permanente volumes en het verloop tussen opeenvolgende back-ups.

    Back-up voor AKS biedt meerdere back-ups per dag. De back-ups worden gelijkmatig verdeeld over de dag, als u vaker back-ups nodig hebt door de frequentie van de back-up per uur te kiezen die de mogelijkheid heeft om back-ups te maken met intervallen van elke 4, 6, 8 of 12 uur. De back-ups worden gepland op basis van het tijdsinterval dat u hebt geselecteerd. Als u bijvoorbeeld om de 4 uur selecteert, worden de back-ups ongeveer in het interval van elke 4 uur genomen.

  3. Als u de frequentie per uur of de bewaarperiode wilt bewerken, gebruikt u de Edit-AzDataProtectionPolicyTriggerClientObject en/of Edit-AzDataProtectionPolicyRetentionRuleClientObject cmdlets. Zodra het beleidsobject alle vereiste waarden heeft, begint u met het maken van een nieuw beleid vanuit het beleidsobject met behulp van de New-AzDataProtectionBackupPolicy cmdlet.

    New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn
    
    $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
    

AKS-cluster voorbereiden voor back-up

Zodra de kluis en het maken van het beleid zijn voltooid, moet u de volgende vereisten uitvoeren om het AKS-cluster gereed te maken voor back-up:

  1. Een opslagaccount en blobcontainer maken

    Back-up voor AKS slaat Kubernetes-resources op in een blobcontainer als back-ups. Als u het AKS-cluster klaar wilt maken voor back-up, moet u een extensie in het cluster installeren. Voor deze extensie zijn het opslagaccount en de blobcontainer als invoer vereist.

    Als u een nieuw opslagaccount en een blobcontainer wilt maken, raadpleegt u deze stappen.

    Notitie

    1. Het opslagaccount en het AKS-cluster moeten zich in dezelfde regio en hetzelfde abonnement bevinden.
    2. De blobcontainer mag geen eerder gemaakte bestandssystemen bevatten (behalve gemaakt door back-up voor AKS).
    3. Als uw bron- of doel-AKS-cluster zich in een virtueel privénetwerk bevindt, moet u een privé-eindpunt maken om het opslagaccount te verbinden met het AKS-cluster.
  2. Back-upextensie installeren

    De back-upextensie moet worden geïnstalleerd in het AKS-cluster om back-up- en herstelbewerkingen uit te voeren. De back-upextensie maakt een naamruimte dataprotection-microsoft in het cluster en gebruikt hetzelfde om de resources te implementeren. Voor de extensie zijn het opslagaccount en de blobcontainer vereist als invoer voor de installatie. Meer informatie over de installatieopdrachten voor extensies.

    Als onderdeel van de installatie van de extensie wordt een gebruikersidentiteit gemaakt in de knooppuntgroep van het AKS-cluster. Voor toegang tot het opslagaccount moet u deze identiteit opgeven als inzender voor opslagaccounts. Als u de vereiste rol wilt toewijzen, voert u deze opdracht uit

  3. Vertrouwde toegang inschakelen

Voordat de Backup-kluis verbinding kan maken met het AKS-cluster, moet u Vertrouwde toegang inschakelen, omdat de Backup-kluis een directe zichtlijn naar het AKS-cluster kan hebben. Meer informatie over het inschakelen van vertrouwde toegang.

Notitie

Voor de installatie van de back-upextensie en het inschakelen van vertrouwde toegang zijn de opdrachten alleen beschikbaar in Azure CLI.

Back-ups configureren

Met het gemaakte Back-upkluis- en back-upbeleid en het AKS-cluster met de status Gereed om een back-up te maken, kunt u nu een back-up maken van uw AKS-cluster.

Belangrijke entiteiten

  • AKS-cluster dat moet worden beveiligd

    Haal de Azure Resource Manager-id van het AKS-cluster op dat moet worden beveiligd. Dit fungeert als de id van het cluster. In dit voorbeeld gebruiken we een AKS-cluster met de naam PSTestAKSCluster, onder een resourcegroep aksrg, in een ander abonnement:

    $sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
    
  • Resourcegroep momentopname

    De momentopnamen van permanente volumes worden opgeslagen in een resourcegroep in uw abonnement. U wordt aangeraden een toegewezen resourcegroep te maken als een gegevensarchief voor momentopnamen dat moet worden gebruikt door de Azure Backup-service. Een toegewezen resourcegroep maakt het beperken van toegangsmachtigingen voor de resourcegroep mogelijk, waardoor de beveiliging en het beheer van de back-upgegevens gemakkelijker worden. Sla de Azure Resource Manager-id van de resourcegroep op op de locatie waar u de permanente momentopnamen van het volume wilt opslaan.

    $snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
    

De aanvraag voorbereiden

De configuratie van back-ups wordt in twee stappen uitgevoerd:

  1. Bereid de back-upconfiguratie voor om te definiëren welke clusterbronnen moeten worden geback-upt met behulp van de New-AzDataProtectionBackupConfigurationClientObject cmdlet. In het volgende voorbeeld wordt de configuratie gedefinieerd als alle clusterbronnen onder huidige en wordt er een back-up gemaakt van toekomstige naamruimten met het label als key-value pair x=y. Daarnaast wordt een back-up gemaakt van alle clusterbronnen en permanente volumes. De volgende naamruimten worden overgeslagen uit de back-upconfiguratie en niet geconfigureerd voor back-ups: kube-system, kube-node-lease, kube-public.

    $backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
    
  2. Bereid de relevante aanvraag voor met behulp van de relevante kluis, beleid, AKS-cluster, back-upconfiguratie en momentopnameresourcegroep met behulp van de Initialize-AzDataProtectionBackupInstance cmdlet.

    $backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService  -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
    

Vereiste machtigingen toewijzen en valideren

Voer de volgende cmdlets uit om de vereiste machtigingen toe te wijzen en validatie voor de AKS-clusterbeveiliging uit te voeren:

  1. Wanneer de aanvraag is voorbereid, moet u de gebruiker de vereiste machtigingen toewijzen via op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) aan de kluis (vertegenwoordigd door door kluis beheerde systeemidentiteit) en het AKS-cluster. U kunt dit doen met behulp van de Set-AzDataProtectionMSIPermission cmdlet. Backup Vault maakt gebruik van een beheerde identiteit voor toegang tot andere Azure-resources. Voor het configureren van een back-up van het AKS-cluster vereist de beheerde identiteit van de Backup-kluis een set machtigingen voor het AKS-cluster en resourcegroepen, waarbij momentopnamen worden gemaakt en beheerd. Het AKS-cluster vereist ook toestemming voor de resourcegroep voor momentopnamen.

    Notitie

    Alleen door het systeem toegewezen beheerde identiteit wordt momenteel ondersteund voor back-up (zowel Back-upkluis als AKS-cluster). Een door het systeem toegewezen beheerde identiteit is beperkt tot één per resource en is gekoppeld aan de levenscyclus van deze resource. U kunt machtigingen verlenen aan de beheerde identiteit met behulp van Azure RBAC. Beheerde identiteit is een service-principal van een speciaal type dat alleen kan worden gebruikt met Azure-resources. Meer informatie over beheerde identiteiten.

    Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
    
  2. Zodra machtigingen zijn toegewezen, test u de gereedheid van het gemaakte exemplaar.

    test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 
    
  3. Wanneer de validatie is geslaagd, dient u de aanvraag in om het AKS-cluster te beveiligen met behulp van de New-AzDataProtectionBackupInstance cmdlet.

    New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
    

Een on-demand back-up uitvoeren

Voer de volgende cmdlets uit om een back-up op aanvraag te activeren:

  1. Haal het relevante back-upexemplaren op waarop u een back-up wilt activeren door de Get-AzDataProtectionBackupInstance cmdlet uit te voeren.

    $instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
    
  2. Geef een bewaarregel op tijdens het activeren van de back-up. Als u de bewaarregels in het beleid wilt weergeven, gaat u naar het beleidsobject voor bewaarregels. In het volgende voorbeeld wordt de regel met de standaardnaam weergegeven en gebruiken we die regel voor de back-up op aanvraag.

    $policyDefn.PolicyRule | fl
    BackupParameter: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
    BackupParameterObjectType: AzureBackupParams
    DataStoreObjectType: DataStoreInfoBase
    DataStoreType: OperationalStore
    Name: BackupHourly
    ObjectType: AzureBackupRule
    Trigger: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
    TriggerObjectType: ScheduleBasedTriggerContext
    IsDefault: True
    Lifecycle: {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
    Name: Default
    ObjectType: AzureRetentionRule
    
  3. Activeer een back-up op aanvraag met behulp van de Backup-AzDataProtectionBackupInstanceAdhoc cmdlet.

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
    
    Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
    

Taken bijhouden

Volg alle taken met behulp van de Get-AzDataProtectionJob cmdlet. U kunt alle taken weergeven en een bepaalde taakdetails ophalen. U kunt de Az.ResourceGraph cmdlet ook gebruiken om alle taken in alle Backup-kluizen bij te houden. Gebruik de Search-AzDataProtectionJobInAzGraph cmdlet om de relevante taakgegevens op te halen uit een Backup-kluis.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService  -Operation OnDemandBackup

Volgende stappen