Säkerhetskopiera Azure Kubernetes Service med PowerShell
I den här artikeln beskrivs hur du konfigurerar och säkerhetskopierar Azure Kubernetes Service (AKS) med Hjälp av Azure PowerShell.
Med Azure Backup kan du nu säkerhetskopiera AKS-kluster (klusterresurser och beständiga volymer som är anslutna till klustret) med hjälp av ett säkerhetskopieringstillägg som måste installeras i klustret. Säkerhetskopieringsvalvet kommunicerar med klustret via det här säkerhetskopieringstillägget för att utföra säkerhetskopierings- och återställningsåtgärder.
Innan du börjar
Innan du börjar säkerhetskopiera ett AKS-kluster måste du granska följande krav:
För närvarande stöder AKS-säkerhetskopiering endast Azure Disk-baserade beständiga volymer (aktiverade av CSI-drivrutin). Säkerhetskopiorna lagras endast i driftdatalager (i din klientorganisation) och flyttas inte till ett valv. Backup-valvet och AKS-klustret bör finnas i samma region.
AKS-säkerhetskopiering använder en blobcontainer och en resursgrupp för att lagra säkerhetskopiorna. Blobcontainern har AKS-klusterresurserna lagrade i den, medan de beständiga volymögonblicksbilderna lagras i resursgruppen. AKS-klustret och lagringsplatserna måste finnas i samma region. Lär dig hur du skapar en blobcontainer.
För närvarande stöder AKS-säkerhetskopiering en gång om dagen säkerhetskopiering. Den stöder också mer frekventa säkerhetskopieringar (i intervallen 4, 8 och 12 timmar) per dag. Med den här lösningen kan du behålla dina data för återställning i upp till 360 dagar. Lär dig hur du skapar en säkerhetskopieringsprincip.
Du måste installera säkerhetskopieringstillägget för att konfigurera säkerhetskopierings- och återställningsåtgärder i ett AKS-kluster. Läs mer om säkerhetskopieringstillägget.
Kontrollera att
Microsoft.KubernetesConfiguration
,Microsoft.DataProtection
ochMicrosoft.ContainerService
är registrerade för din prenumeration innan du påbörjar säkerhetskopieringskonfigurationen och återställningsåtgärderna.Se till att utföra alla krav innan du påbörjar säkerhetskopiering eller återställning för AKS-säkerhetskopiering.
Mer information om scenarier, begränsningar och tillgänglighet som stöds finns i supportmatrisen.
Skapa ett säkerhetskopieringsvalv
Ett säkerhetskopieringsvalv är en hanteringsentitet i Azure som lagrar säkerhetskopieringsdata för olika nyare arbetsbelastningar som Stöds av Azure Backup, till exempel Azure Database for PostgreSQL-servrar och Azure Disks. Säkerhetskopieringsvalv gör det enkelt att organisera dina säkerhetskopierade data samtidigt som hanteringskostnaderna minimeras. De baseras på Azure Resource Manager-modellen, som ger förbättrade funktioner för att skydda säkerhetskopierade data. Innan du skapar ett säkerhetskopieringsvalv väljer du lagringsredundans för data i valvet och skapar sedan säkerhetskopieringsvalvet med den lagringsredundansen och platsen.
Här skapar vi ett TestBkpVault för säkerhetskopieringsvalvet i regionen USA, västra under resursgruppen testBkpVaultRG. Använd cmdleten New-AzDataProtectionBackupVault
för att skapa ett Backup-valv. Läs mer om att skapa ett säkerhetskopieringsvalv.
Kommentar
Även om det valda valvet kan ha inställningen global redundans stöder säkerhetskopiering för AKS för närvarande endast driftnivå . Alla säkerhetskopior lagras i din prenumeration i samma region som AKS-klustret och de kopieras inte till Backup Vault Storage.
Om du vill definiera lagringsinställningarna för Backup-valvet kör du följande cmdlet:
Kommentar
Valvet skapas med endast stöd för lokal redundans och driftdatalager .
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
Kör följande cmdlet för att skapa säkerhetskopieringsvalvet enligt den information som nämndes tidigare:
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
När valvet har skapats skapar du en säkerhetskopieringsprincip för att skydda AKS-kluster.
Skapa en säkerhetskopieringspolicy
Med Azure Backup kan du skapa säkerhetskopieringsprinciper för AKS-klusterskydd med dagliga säkerhetskopieringar eller flera säkerhetskopior per dag.
Om du vill skapa en säkerhetskopieringsprincip för AKS-kluster kör du följande cmdletar:
Hämta principmallen med hjälp av cmdleten
Get-AzDataProtectionPolicyTemplate
och kontrollera de inre komponenterna i en säkerhetskopieringsprincip för säkerhetskopiering av AKS. Det här kommandot returnerar en standardprincipmall för en viss datakällatyp. Använd den här principmallen för att skapa en ny princip.$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
Principmallen består av ett utlösarvillkor (som bestämmer faktorerna för att utlösa säkerhetskopieringsjobbet) och en livscykel (som bestämmer när säkerhetskopiorna ska tas bort, kopieras eller flyttas). I AKS-säkerhetskopiering är standardvärdet för utlösaren en schemalagd timutlösare var fjärde timme (PT4H) och kvarhållningen av varje säkerhetskopia är 7 dagar.
$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:
För den dagliga säkerhetskopieringsfrekvensen anger du den tid på dagen då dina säkerhetskopior ska utföras.
Viktigt!
Tiden på dagen anger starttiden för säkerhetskopieringen och inte tiden då säkerhetskopieringen slutförs. Den tid som krävs för att slutföra säkerhetskopieringsåtgärden beror på olika faktorer, inklusive antalet och storleken på de beständiga volymerna och omsättningshastigheten mellan på varandra följande säkerhetskopior.
Säkerhetskopiering för AKS ger flera säkerhetskopior per dag. Säkerhetskopiorna är lika fördelade över dagen, om du behöver mer frekventa säkerhetskopieringar genom att välja frekvensen För säkerhetskopiering per timme som har möjlighet att göra säkerhetskopior med intervall på var 4:e, 6:e, 8: e eller 12 :e timme. Säkerhetskopiorna schemaläggs baserat på det tidsintervall som du har valt. Om du till exempel väljer Var 4:e timme tas säkerhetskopiorna ungefär i intervallet var fjärde timme.
Om du vill redigera timfrekvensen eller kvarhållningsperioden använder
Edit-AzDataProtectionPolicyTriggerClientObject
du cmdletarna och/ellerEdit-AzDataProtectionPolicyRetentionRuleClientObject
. När principobjektet har alla nödvändiga värden börjar du skapa en ny princip från principobjektet med hjälp av cmdletenNew-AzDataProtectionBackupPolicy
.New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
Förbereda AKS-kluster för säkerhetskopiering
När valvet och principen har skapats måste du utföra följande krav för att göra AKS-klustret redo för säkerhetskopiering:
Skapa ett lagringskonto och en blobcontainer
Säkerhetskopiering för AKS lagrar Kubernetes-resurser i en blobcontainer som säkerhetskopior. För att göra AKS-klustret redo för säkerhetskopiering måste du installera ett tillägg i klustret. Det här tillägget kräver lagringskontot och blobcontainern som indata.
Information om hur du skapar ett nytt lagringskonto och en blobcontainer finns i de här stegen.
Kommentar
- Lagringskontot och AKS-klustret bör finnas i samma region och prenumeration.
- Blobcontainern får inte innehålla några tidigare skapade filsystem (förutom skapade av säkerhetskopiering för AKS).
- Om ditt AKS-käll- eller målkluster finns i ett privat virtuellt nätverk måste du skapa en privat slutpunkt för att ansluta lagringskontot till AKS-klustret.
Installera säkerhetskopieringstillägget
Säkerhetskopieringstillägget är obligatoriskt att installeras i AKS-klustret för att utföra säkerhetskopierings- och återställningsåtgärder. Säkerhetskopieringstillägget skapar ett namnområde
dataprotection-microsoft
i klustret och använder samma för att distribuera dess resurser. Tillägget kräver lagringskontot och blobcontainern som indata för installationen. Läs mer om installationskommandona för tillägget.Som en del av tilläggsinstallationen skapas en användaridentitet i AKS-klustrets resursgrupp för nodpool. För att tillägget ska få åtkomst till lagringskontot måste du ange rollen Lagringskontodeltagare för den här identiteten. Om du vill tilldela den nödvändiga rollen kör du det här kommandot
Aktivera betrodd åtkomst
För att säkerhetskopieringsvalvet ska kunna ansluta till AKS-klustret måste du aktivera betrodd åtkomst eftersom säkerhetskopieringsvalvet kan ha en direkt siktlinje till AKS-klustret. Lär dig hur du aktiverar betrodd åtkomst.
Kommentar
För installation av säkerhetskopieringstillägg och aktiverad betrodd åtkomst är kommandona endast tillgängliga i Azure CLI.
Konfigurera säkerhetskopior
Med den skapade säkerhetskopieringsvalvet och säkerhetskopieringsprincipen och AKS-klustret i tillståndet redo att säkerhetskopieras kan du nu börja säkerhetskopiera DITT AKS-kluster .
Nyckelentiteter
AKS-kluster som ska skyddas
Hämta Azure Resource Manager-ID:t för AKS-klustret som ska skyddas. Detta fungerar som identifierare för klustret. I det här exemplet ska vi använda ett AKS-kluster med namnet PSTestAKSCluster, under en resursgrupp aksrg, i en annan prenumeration:
$sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
Resursgrupp för ögonblicksbild
Ögonblicksbilder av beständiga volymer lagras i en resursgrupp i din prenumeration. Vi rekommenderar att du skapar en dedikerad resursgrupp som ett datalager för ögonblicksbilder som ska användas av Azure Backup-tjänsten. En dedikerad resursgrupp gör det möjligt att begränsa åtkomstbehörigheter för resursgruppen, vilket ger säkerhet och enkel hantering av säkerhetskopierade data. Spara Azure Resource Manager-ID:t för resursgruppen på den plats där du vill lagra de beständiga ögonblicksbilderna av volymen.
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
Förbereda begäran
Konfigurationen av säkerhetskopieringen utförs i två steg:
Förbered säkerhetskopieringskonfigurationen för att definiera vilka klusterresurser som ska säkerhetskopieras med hjälp av cmdleten
New-AzDataProtectionBackupConfigurationClientObject
. I följande exempel definieras konfigurationen som alla klusterresurser under aktuell och framtida namnområden säkerhetskopieras med etiketten somkey-value pair x=y
. Dessutom säkerhetskopieras alla klusteromfångsresurser och beständiga volymer. Följande namnområden hoppas över från säkerhetskopieringskonfigurationen och konfigureras inte för säkerhetskopior: kube-system, kube-node-lease, kube-public.$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
Förbered relevant begäran med hjälp av relevant valv, princip, AKS-kluster, säkerhetskopieringskonfiguration och resursgrupp för ögonblicksbilder med hjälp av cmdleten
Initialize-AzDataProtectionBackupInstance
.$backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
Tilldela nödvändiga behörigheter och verifiera
Om du vill tilldela nödvändiga behörigheter och utföra verifiering för AKS-klusterskyddet kör du följande cmdletar:
När begäran har förberetts måste du tilldela användaren de behörigheter som krävs via rollbaserad åtkomstkontroll i Azure (Azure RBAC) till valvet (representeras av valvhanterad systemidentitet) och AKS-klustret. Du kan utföra detta med hjälp av cmdleten
Set-AzDataProtectionMSIPermission
. Säkerhetskopieringsvalvet använder hanterad identitet för att få åtkomst till andra Azure-resurser. För att konfigurera säkerhetskopiering av AKS-kluster kräver Backup-valvets hanterade identitet en uppsättning behörigheter för AKS-klustret och resursgrupperna, där ögonblicksbilder skapas och hanteras. Dessutom kräver AKS-klustret behörighet för resursgruppen för ögonblicksbilder.Kommentar
Endast systemtilldelad hanterad identitet stöds för närvarande för säkerhetskopiering (både Säkerhetskopieringsvalv och AKS-kluster). En systemtilldelad hanterad identitet är begränsad till en per resurs och är kopplad till resursens livscykel. Du kan bevilja behörigheter till den hanterade identiteten med hjälp av Azure RBAC. Hanterad identitet är ett tjänsthuvudnamn av en särskild typ som endast kan användas med Azure-resurser. Läs mer om hanterade identiteter.
Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
När behörigheterna har tilldelats testar du beredskapen för den instans som skapats.
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
När valideringen har slutförts skickar du begäran för att skydda AKS-klustret med hjälp av cmdleten
New-AzDataProtectionBackupInstance
.New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
Köra en säkerhetskopiering på begäran
Om du vill utlösa en säkerhetskopiering på begäran kör du följande cmdletar:
Hämta den relevanta säkerhetskopieringsinstans som du vill utlösa en säkerhetskopia på genom att köra cmdleten
Get-AzDataProtectionBackupInstance
.$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Ange en kvarhållningsregel när säkerhetskopieringen utlöses. Om du vill visa kvarhållningsreglerna i principen går du till principobjektet för kvarhållningsregler. I följande exempel visas regeln med standardnamnet och vi använder den regeln för säkerhetskopiering på begäran.
$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
Utlös en säkerhetskopiering på begäran med hjälp av cmdleten
Backup-AzDataProtectionBackupInstanceAdhoc
.$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Spåra jobb
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 cmdleten Az.ResourceGraph
för att spåra alla jobb i alla Säkerhetskopieringsvalv. Använd cmdleten Search-AzDataProtectionJobInAzGraph
för att hämta relevant jobbinformation från alla Säkerhetskopieringsvalv.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService -Operation OnDemandBackup