Dela via


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.DataProtectionoch Microsoft.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.

  1. 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
    
  2. 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:

  1. 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:
    
  2. 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.

  3. Om du vill redigera timfrekvensen eller kvarhållningsperioden använder Edit-AzDataProtectionPolicyTriggerClientObject du cmdletarna och/eller Edit-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 cmdleten New-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:

  1. 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

    1. Lagringskontot och AKS-klustret bör finnas i samma region och prenumeration.
    2. Blobcontainern får inte innehålla några tidigare skapade filsystem (förutom skapade av säkerhetskopiering för AKS).
    3. 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.
  2. 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

  3. 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:

  1. 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 som key-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"
    
  2. 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:

  1. 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"
    
  2. När behörigheterna har tilldelats testar du beredskapen för den instans som skapats.

    test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 
    
  3. 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:

  1. 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"
    
  2. 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
    
  3. 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

Nästa steg