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.DataProtection
enMicrosoft.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.
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
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:
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:
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.
Als u de frequentie per uur of de bewaarperiode wilt bewerken, gebruikt u de
Edit-AzDataProtectionPolicyTriggerClientObject
en/ofEdit-AzDataProtectionPolicyRetentionRuleClientObject
cmdlets. Zodra het beleidsobject alle vereiste waarden heeft, begint u met het maken van een nieuw beleid vanuit het beleidsobject met behulp van deNew-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:
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
- Het opslagaccount en het AKS-cluster moeten zich in dezelfde regio en hetzelfde abonnement bevinden.
- De blobcontainer mag geen eerder gemaakte bestandssystemen bevatten (behalve gemaakt door back-up voor AKS).
- 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.
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
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:
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 alskey-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"
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:
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"
Zodra machtigingen zijn toegewezen, test u de gereedheid van het gemaakte exemplaar.
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
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:
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"
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
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