Dela via


Säkerhetskopiera Azure Kubernetes Service med Azure CLI

I den här artikeln beskrivs hur du konfigurerar och säkerhetskopierar Azure Kubernetes Service (AKS) med Hjälp av Azure CLI.

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

  • 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 funktionsflaggan TrustedAccessPreviewMicrosoft.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. Säkerhetskopieringsvalv baseras på Azure Resource Manager-modellen i Azure, 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. 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.

Kör följande kommando för att skapa säkerhetskopieringsvalvet:

az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"

När valvet har skapats skapar du en säkerhetskopieringsprincip för att skydda AKS-kluster.

Skapa en säkerhetskopieringspolicy

Om du vill förstå de inre komponenterna i en säkerhetskopieringsprincip för säkerhetskopiering av AKS hämtar du principmallen med kommandot az dataprotection backup-policy get-default-policy-template. 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.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureKubernetesService > akspolicy.json


{
  "datasourceTypes": [
    "Microsoft.ContainerService/managedClusters"
  ],
  "name": "AKSPolicy1",
  "objectType": "BackupPolicy",
  "policyRules": [
    {
      "backupParameters": {
        "backupType": "Incremental",
        "objectType": "AzureBackupParams"
      },
      "dataStore": {
        "dataStoreType": "OperationalStore",
        "objectType": "DataStoreInfoBase"
      },
      "name": "BackupHourly",
      "objectType": "AzureBackupRule",
      "trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2023-01-04T09:00:00+00:00/PT4H"
          ]
        },
        "taggingCriteria": [
          {
            "isDefault": true,
            "tagInfo": {
              "id": "Default_",
              "tagName": "Default"
            },
            "taggingPriority": 99
          }
        ]
      }
    },
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P7D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]
}

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 365 dagar.

Scheduled trigger:
      "trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2023-01-04T09:00:00+00:00/PT4H"
          ]
        },

Default retention lifecycle:
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P7D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],


Säkerhetskopiering för AKS ger flera säkerhetskopior per dag. Om du behöver mer frekventa säkerhetskopieringar väljer du den frekvens för säkerhetskopiering per timme som har möjlighet att göra säkerhetskopior med intervall på 4, 6, 8 eller 12 timmar. Säkerhetskopiorna schemaläggs baserat på det tidsintervall som du har valt.

Om du till exempel väljer Var fjärde timme görs säkerhetskopiorna ungefär var fjärde timme så att säkerhetskopiorna fördelas jämnt över dagen. Om säkerhetskopiering en gång om dagen räcker väljer du frekvensen För daglig säkerhetskopiering. I den dagliga säkerhetskopieringsfrekvensen kan du ange 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.

Kommentar

Även om det valda valvet har inställningen global redundans stöder säkerhetskopiering för AKS för närvarande endast ögonblicksbilddatalager. Alla säkerhetskopior lagras i en resursgrupp i din prenumeration och kopieras inte till Lagring av säkerhetskopieringsvalv.

När du har laddat ned mallen som en JSON-fil kan du redigera den för schemaläggning och kvarhållning efter behov. Skapa sedan en ny princip med den resulterande JSON:n. Om du vill redigera timfrekvensen eller kvarhållningsperioden använder du kommandona az dataprotection backup-policy trigger set och/eller az dataprotection backup-policy retention-rule set . När principenS JSON har alla nödvändiga värden fortsätter du med att skapa en ny princip från principobjektet med kommandot az dataprotection backup-policy create .

az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json

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.

    Kör följande kommando för att skapa ett nytt lagringskonto:

    az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --location $region --sku Standard_LRS
    

    När lagringskontot har skapats skapar du en blobcontainer inuti genom att köra följande kommando:

    az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode login
    

    Lär dig hur du aktiverar eller inaktiverar specifika funktioner, till exempel privat slutpunkt, när du skapar lagringskonto och blobcontainer.

    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.

    az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name $akscluster --resource-group $aksclusterresourcegroup --release-train stable --configuration-settings blobContainer=$blobcontainer storageAccount=$storageaccount storageAccountResourceGroup=$storageaccountresourcegroup storageAccountSubscriptionId=$subscriptionId
    

    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 den här identiteten rollen Storage Blob Data Contributor . Om du vill tilldela den nödvändiga rollen kör du följande kommando:

    az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $akscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccount
    
  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.

    Om du vill aktivera betrodd åtkomst kör du följande kommando:

    az aks trustedaccess rolebinding create --cluster-name $akscluster --name backuprolebinding --resource-group $aksclusterresourcegroup --roles Microsoft.DataProtection/backupVaults/backup-operator --source-resource-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/BackupVaults/$backupvault
    

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 .

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 kommandot az dataprotection backup-instance initialize-backupconfig . Kommandot genererar en JSON som du kan uppdatera för att definiera säkerhetskopieringskonfigurationen för AKS-klustret efter behov.

    az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json
    
    {
     "excluded_namespaces": null,
     "excluded_resource_types": null,
     "include_cluster_scope_resources": true,
     "included_namespaces": null, 
     "included_resource_types": null,
     "label_selectors": null,
     "snapshot_volumes": true
    }
    
  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 az dataprotection backup-instance initialize kommandot .

    az dataprotection backup-instance initialize --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --datasource-location $region --datasource-type AzureKubernetesService --policy-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupPolicies/$backuppolicy --backup-configuration ./aksbackupconfig.json --friendly-name ecommercebackup --snapshot-resource-group-name $snapshotresourcegroup > backupinstance.json
    

Använd nu JSON-utdata för det här kommandot för att konfigurera säkerhetskopiering för AKS-klustret.

Tilldela nödvändiga behörigheter och verifiera

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. AKS-klustret kräver också behörighet för gruppen Ögonblicksbildsresurs.

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 rollbaserad åtkomstkontroll i Azure (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.

När begäran har förberetts måste du först kontrollera om de nödvändiga rollerna har tilldelats till de resurser som nämns ovan genom att köra följande kommando:

az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault

Om verifieringen misslyckas och vissa behörigheter saknas kan du tilldela dem genom att köra följande kommando:

az dataprotection backup-instance update-msi-permissions command.
az dataprotection backup-instance update-msi-permissions --datasource-type AzureKubernetesService --operation Backup --permissions-scope ResourceGroup --vault-name $backupvault --resource-group $backupvaultresourcegroup --backup-instance backupinstance.json

När behörigheterna har tilldelats kan du återanvända med hjälp av följande verifiering för säkerhetskopieringskommando :

az dataprotection backup-instance create --backup-instance  backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault

Köra en säkerhetskopiering på begäran

Kör kommandot för att hämta relevant säkerhetskopieringsinstans där du vill utlösa en säkerhetskopia az dataprotection backup-instance list-from-resourcegraph -- .

az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --query aksAssignedIdentity.id

Utlös nu en säkerhetskopiering på begäran för säkerhetskopieringsinstansen genom att köra följande kommando:

az dataprotection backup-instance adhoc-backup --rule-name "BackupDaily" --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid

Spåra jobb

Spåra säkerhetskopieringsjobb som az dataprotection job kör kommandot. Du kan visa en lista över alla jobb och hämta en viss jobbinformation.

Du kan också använda Resource Graph för att spåra alla jobb i alla prenumerationer, resursgrupper och säkerhetskopieringsvalv genom att köra az dataprotection job list-from-resourcegraph kommandot för att hämta relevant jobb

För säkerhetskopiering på begäran:

az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation OnDemandBackup

För schemalagd säkerhetskopiering:

az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation ScheduledBackup

Nästa steg