Megosztás a következőn keresztül:


Az Azure Kubernetes Service biztonsági mentése az Azure CLI használatával

Ez a cikk az Azure Kubernetes Service (AKS) Azure CLI használatával történő konfigurálását és biztonsági mentését ismerteti. Az AKS-ről az Azure PowerShell használatával is készíthet biztonsági másolatot.

Az Azure Backup mostantól lehetővé teszi az AKS-fürtök (fürterőforrások és a fürthöz csatlakoztatott állandó kötetek) biztonsági mentési bővítmény használatával történő biztonsági mentését, amelyet telepíteni kell a fürtön. A biztonsági mentési tároló ezen a Biztonsági mentési Bővítményen keresztül kommunikál a fürttel a biztonsági mentések és visszaállítási műveletek elvégzése céljából.

Mielőtt elkezdené

  • Az AKS biztonsági mentése jelenleg csak az Azure Disk-alapú állandó köteteket támogatja (amelyeket a CSI-illesztőprogram engedélyez). A biztonsági másolatok csak az operatív adattárban (a bérlői környezetben) vannak tárolva, és nem kerülnek archívumba. A biztonsági mentési tárolónak és az AKS-fürtnek ugyanabban a régióban kell lennie.

  • Az AKS biztonsági mentése blobtárolót és erőforráscsoportot használ a biztonsági mentések tárolásához. A blobtárolóban az AKS-fürt erőforrásai vannak tárolva, míg az állandó kötet-pillanatképek az erőforráscsoportban vannak tárolva. Az AKS-fürtnek és a tárolási helyeknek ugyanabban a régióban kell lenniük. Megtudhatja , hogyan hozhat létre blobtárolót.

  • Az AKS biztonsági mentése jelenleg napi egyszeri biztonsági mentést támogat. Emellett támogatja a gyakoribb biztonsági mentéseket is ( 4, 8 és 12 óránként) naponta. Ezzel a megoldással akár 360 napig is megőrizheti az adatokat visszaállítás céljából. Megtudhatja, hogyan hozhat létre biztonsági mentési szabályzatot.

  • Az AKS-fürt biztonsági mentési és visszaállítási műveleteinek konfigurálásához telepítenie kell a Biztonsági mentési bővítményt. További információ a biztonsági mentési bővítményről.

  • A biztonsági mentési konfiguráció és a visszaállítási műveletek megkezdése előtt győződjön meg róla, hogy Microsoft.KubernetesConfiguration, Microsoft.DataProtection és Microsoft.ContainerService az előfizetéshez regisztrálva van.

  • Az AKS biztonsági mentési vagy visszaállítási műveletének megkezdése előtt győződjön meg arról, hogy az összes előfeltételt végrehajtja.

A támogatott forgatókönyvekről, korlátozásokról és rendelkezésre állásról további információt a támogatási mátrixban talál.

Backup-tároló létrehozása

A Backup-tároló egy felügyeleti entitás az Azure-ban, amely biztonsági mentési adatokat tárol az Azure Backup által támogatott újabb számítási feladatokhoz, például az Azure Database for PostgreSQL-kiszolgálókhoz és az Azure Diskshez. A biztonsági mentési tárolók megkönnyítik a biztonsági mentési adatok rendszerezését, miközben minimálisra csökkentik a felügyeleti többletterhelést. A biztonsági mentési tárolók az Azure Azure Resource Manager-modelljén alapulnak, amely továbbfejlesztett képességeket biztosít a biztonsági mentési adatok védelméhez.

A Backup-tároló létrehozása előtt válassza ki a tárolóban lévő adatok tárolási redundanciáját, majd hozza létre a Biztonsági mentési tárolót ezzel a tárredundanciával és a helyével. További információ a Backup-tárolók létrehozásáról.

Megjegyzés:

Bár a kijelölt tároló rendelkezhet a globális redundancia beállításával, az AKS biztonsági mentése jelenleg csak az Operatív szintet támogatja. Az összes biztonsági mentés ugyanabban a régióban van tárolva az előfizetésben, mint az AKS cluster, és nem másolják át a Backup-tárolóba.

A Backup-tároló létrehozásához futtassa a következő parancsot:

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

Miután a tárhely létrehozása befejeződött, hozzon létre egy biztonsági másolási szabályzatot az AKS klaszterek védelmére.

Biztonsági mentési szabályzat létrehozása

Az AKS biztonsági mentéséhez szükséges biztonsági mentési szabályzat belső összetevőinek megismeréséhez kérje le a szabályzatsablont a parancs használatával az dataprotection backup-policy get-default-policy-template. Ez a parancs egy alapértelmezett szabályzatsablont ad vissza egy adott adatforrástípushoz. Ezzel a szabályzatsablonnal új szabályzatot hozhat létre.

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"
    }
  ]
}

A szabályzatsablon egy eseményindító feltételből (amely meghatározza a biztonsági mentési feladat aktiválásának tényezőit) és egy életciklusból (amely dönti el, hogy mikor törli, másolja vagy helyezi át a biztonsági másolatokat). Az AKS biztonsági mentésében az eseményindító alapértelmezett értéke egy ütemezett óránkénti eseményindító, amely 4 óránként (PT4H) történik, és minden biztonsági mentés megőrzési ideje hét nap.

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"
          }
        }
      ]


Az AKS biztonsági mentése naponta több biztonsági mentést biztosít. Ha gyakoribb biztonsági mentésre van szüksége, válassza ki azt az óránkénti biztonsági mentési gyakoriságot, amely 4, 6, 8 vagy 12 óránként képes biztonsági mentéseket készíteni. A biztonsági mentések ütemezése a kiválasztott időintervallum alapján történik.

Fontos

A nap időpontja a biztonsági mentés kezdési idejét jelzi, nem pedig a biztonsági mentés befejezésének időpontját. A biztonsági mentés ütemezése az ISO 8601 időtartamformátumot követi. Az ismétlődő időköz előtagja R azonban nem támogatott, mivel a biztonsági másolatok határozatlan ideig futnak. A program figyelmen kívül hagyja a R megadott értékeket.

Miután JSON-fájlként letöltötte a sablont, igény szerint szerkesztheti az ütemezéshez és a megőrzéshez. Ezután hozzon létre egy új szabályzatot az eredményként kapott JSON-val. Ha az óránkénti gyakoriságot vagy a megőrzési időtartamot szeretné szerkeszteni, használja az és/vagy az dataprotection backup-policy trigger set a az dataprotection backup-policy retention-rule set parancsokat.

Megjegyzés:

Ha a biztonsági mentési adatokat tárolószinten szeretné tárolni, hogy hosszú távon megőrződjenek megfelelőségi célból, vagy régióközi visszaállítással történő regionális vészhelyreállításhoz, meg kell határoznia egy új adatmegőrzési szabályt az alapértelmezett sablonban, amely meghatározza, hogy mennyi ideig kell tárolni a biztonsági mentést a tárolóban.

Vegyünk egy példát, ahol frissítjük a biztonsági mentési szabályzat alapértelmezett sablonját, és hozzáadunk egy adatmegőrzési szabályt, amely 30 napig megőrzi az első sikeres biztonsági mentést a tárolószinten .

A paranccsal az dataprotection backup-policy retention-rule create-lifecycle hozzon létre egy adatmegőrzési szabályt, majd adja hozzá az adatmegőrzési szabályt a biztonsági mentési szabályzat sablonhoz a következő paranccsal: ""


az dataprotection backup-policy retention-rule create-lifecycle  --count 30 --retention-duration-type Days --copy-option ImmediateCopyOption --target-datastore VaultStore --source-datastore OperationalStore > ./retentionrule.json

az dataprotection backup-policy retention-rule set --lifecycles ./retentionrule.json --name Daily --policy ./akspolicy.json > ./akspolicy.json

Ha a szabályzat JSON-jának minden szükséges értéke megvan, hozzon létre egy új szabályzatot a szabályzatobjektumból a az dataprotection backup-policy create paranccsal.

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

Készítse elő az AKS klasztert a biztonsági mentéshez

A tároló és a szabályzat létrehozásának befejezése után az alábbi előfeltételeket kell teljesíteni, hogy az AKS-fürt készen álljon a backupra:

  1. Hozzon létre egy tárfiókot és egy blobtárolót.

    Az AKS biztonsági mentése biztonsági másolatként tárolja a Kubernetes-erőforrásokat egy blobtárolóban. Ahhoz, hogy az AKS klasztert előkészítse a biztonsági mentéshez, telepítenie kell egy bővítményt a klaszterbe. Ehhez a bővítményhez bemenetként a tárfiók és a blobtároló szükséges.

    Új tárfiók létrehozásához futtassa a következő parancsot:

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

    A tárfiók létrehozása után hozzon létre egy blobtárolót a következő parancs futtatásával:

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

    Megtudhatja, hogyan engedélyezheti vagy tilthatja le bizonyos funkciókat, például a privát végpontot a tárfiók és a blobtároló létrehozása során.

    Megjegyzés:

    1. A tárolófióknak és az AKS klaszternek ugyanabban a régióban és előfizetésben kell lennie.
    2. A blobtároló nem tartalmazhat korábban létrehozott fájlrendszereket (kivéve az AKS biztonsági mentésével létrehozottakat).
    3. Ha a forrás vagy a cél AKS-fürt privát virtuális hálózaton található, akkor privát végpontot kell létrehozni a tárfiók és az AKS-fürt összekapcsolásához.
  2. Telepítse a Biztonsági mentés bővítményt.

    A biztonsági mentési bővítményt kötelező telepíteni az AKS-fürtben a biztonsági mentési és visszaállítási műveletek elvégzéséhez. A Backup Extension egy névteret hoz létre dataprotection-microsoft a klaszterben, és ezt használja az erőforrásainak telepítéséhez. A bővítményhez a tárfiók és a blobtároló szükséges bemenetként a telepítéshez.

    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
    

Ha az AKS-fürt egy virtuális hálózaton belül van, akkor létre kell hoznia egy privát végpontot, amely összeköti a tárfiókot azzal a virtuális hálózattal, amelyben az AKS-fürt található.

#Fetch the Subnet ID using the name of the virtual network and subnet in which cluster resides 
$PESubnetId = az network vnet subnet show --resource-group $aksMCResourceGroup --vnet-name $aksVnetName  --name $PESubnetName --query 'id' --output tsv

#Create a Private Endpoint between Storage Account and the Virtual Network.
az network private-endpoint create `
  --resource-group $aksclusterresourcegroup `
  --name $StoragePrivateEndpoint `
  --vnet-name $aksVnetName `
  --subnet $PESubnetId `
  --private-connection-resource-id $(az storage account show --nameD $storageaccount --resource-group $storageaccountresourcegroup --query "id" --output tsv) `
  --group-ids "blob" `
  --connection-name "StoragePESharedVNetConnection"

A bővítmény telepítésének részeként létrejön egy felhasználói identitás az AKS-fürt csomópontkészlet erőforráscsoportjában. Ahhoz, hogy a bővítmény hozzáférhessen a tárfiókhoz, meg kell adnia ezt az identitást a Storage Blob Data Contributor szerepkörnek. A szükséges szerepkör hozzárendeléséhez futtassa a következő parancsot:

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
  1. Megbízható hozzáférés engedélyezése

    Ahhoz, hogy a Backup-tároló csatlakozzon az AKS-fürthöz, engedélyeznie kell a Megbízható hozzáférést , mivel lehetővé teszi, hogy a Backup-tároló közvetlen látóvonalat láthasson az AKS-fürthöz.

    A Megbízható hozzáférés engedélyezéséhez futtassa a következő parancsot:

    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
    

Biztonsági másolatok konfigurálása

A létrehozott Backup-tárolóval és biztonsági mentési szabályzattal, valamint az AKS-fürttel, amely már készen áll a biztonsági mentésre, most megkezdheti az AKS-fürt biztonsági mentését.

A kérés előkészítése

A biztonsági mentés konfigurálása két lépésben történik:

  1. Készítsen biztonsági mentési konfigurációt annak meghatározásához, hogy mely fürterőforrásokról kell biztonsági másolatot készíteni a az dataprotection backup-instance initialize-backupconfig paranccsal. A parancs létrehoz egy JSON-t, amelyet igény szerint frissíthet az AKS-fürt biztonsági mentési konfigurációjának meghatározásához.

    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
    }
    

A következő névterek kimaradnak a biztonsági mentési konfigurációból, és nincsenek biztonsági mentésekhez konfigurálva: kube-system, kube-node-lease, kube-public.

  1. A az dataprotection backup-instance initialize parancs használatával készítse elő a vonatkozó kérést a megfelelő adatbunker, szabályzat, AKS-fürt, biztonsági mentési konfiguráció és pillanatkép-erőforráscsoport használatával.

    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
    

Most használja ennek a parancsnak a JSON kimenetét az AKS klaszter biztonsági mentésének konfigurálásához.

A szükséges engedélyek hozzárendelése és érvényesítése

A Backup-tároló felügyelt identitással fér hozzá más Azure-erőforrásokhoz. Az AKS-fürt biztonsági mentésének konfigurálásához a Backup-tároló felügyelt identitásának engedélyekre van szüksége az AKS-fürtön és az erőforráscsoportokon, ahol a pillanatképek jönnek létre és kezelve vannak. Emellett az AKS-fürtnek engedélyre van szüksége a Pillanatkép-erőforráscsoporthoz.

Csak a rendszer által hozzárendelt felügyelt identitás támogatott a biztonsági mentések során (mind a Backup-tároló, mind az AKS-fürt esetében). A rendszer által hozzárendelt felügyelt identitás erőforrásonként egyre korlátozódik, és az adott erőforrás életciklusához van kötve. Engedélyeket adhat a felügyelt identitáshoz az Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC) használatával. A felügyelt identitás egy speciális típusú szolgáltatásnév, amelyet csak Azure-erőforrásokhoz lehet használni. További információ a felügyelt identitásokról.

A kérelem előkészítésével először ellenőriznie kell, hogy a szükséges szerepkörök hozzá vannak-e rendelve a fent említett erőforrásokhoz a következő parancs futtatásával:

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

Ha az ellenőrzés sikertelen, és bizonyos engedélyek hiányoznak, az alábbi parancs futtatásával rendelheti hozzá őket:

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

Miután hozzárendelte az engedélyeket, az alábbi érvényesítési paranccsal értékelje újra a biztonsági mentési parancsot:

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

Igény szerinti biztonsági mentések futtatása

A megfelelő biztonsági mentési példány lekéréséhez futtassa a az dataprotection backup-instance list-from-resourcegraph -- parancsot.

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

Most aktiválja az igény szerinti biztonsági mentést a biztonsági mentési példányhoz az alábbi parancs futtatásával:

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

Feladatok nyomon követése

A parancsot futtató biztonsági mentési az dataprotection job feladatok nyomon követése. Listázhatja az összes feladatot, és lekérhet egy adott feladatrészletet.

A Resource Graph használatával is nyomon követheti az összes feladatot az összes előfizetésben, erőforráscsoportban és biztonsági mentési tárolóban. Ehhez futtassa a parancsot a az dataprotection job list-from-resourcegraph megfelelő feladat lekéréséhez

Igény szerinti biztonsági mentéshez:

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

Ütemezett biztonsági mentés esetén:

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

Következő lépések