Zálohování služby Azure Kubernetes Service pomocí Azure CLI
Tento článek popisuje, jak nakonfigurovat a zálohovat službu Azure Kubernetes Service (AKS) pomocí Azure CLI. AKS můžete také zálohovat pomocí Azure PowerShellu.
Azure Backup teď umožňuje zálohovat clustery AKS (prostředky clusteru a trvalé svazky připojené ke clusteru) pomocí rozšíření zálohování, které se musí nainstalovat do clusteru. Trezor služby Backup komunikuje s clusterem prostřednictvím tohoto rozšíření zálohování za účelem provádění operací zálohování a obnovení.
Než začnete
Zálohování AKS v současné době podporuje pouze trvalé svazky založené na disku Azure (povolené ovladačem CSI). Zálohy se ukládají jenom v provozním úložišti dat (ve vašem tenantovi) a nepřesouvají se do trezoru. Trezor služby Backup a cluster AKS by měly být ve stejné oblasti.
Zálohování AKS používá k ukládání záloh kontejner objektů blob a skupinu prostředků. Kontejner objektů blob obsahuje prostředky clusteru AKS uložené v něm, zatímco snímky trvalých svazků jsou uložené ve skupině prostředků. Cluster AKS a umístění úložiště se musí nacházet ve stejné oblasti. Zjistěte , jak vytvořit kontejner objektů blob.
Zálohování AKS v současné době podporuje jednorázové zálohování. Podporuje také častější zálohování (v intervalech každých 4, 8 a 12 hodin) za den. Toto řešení umožňuje uchovávat data pro obnovení po dobu až 360 dnů. Naučte se vytvářet zásady zálohování.
Pokud chcete nakonfigurovat operace zálohování a obnovení v clusteru AKS, musíte nainstalovat rozšíření zálohování. Přečtěte si další informace o rozšíření zálohování.
Před zahájením operací konfigurace zálohování a
Microsoft.ContainerService
obnovení se ujistěte, žeMicrosoft.KubernetesConfiguration
Microsoft.DataProtection
jsou pro vaše předplatné zaregistrované.Před zahájením operace zálohování nebo obnovení pro zálohování AKS nezapomeňte provést všechny požadavky .
Další informace o podporovaných scénářích, omezeních a dostupnosti najdete v matici podpory.
Vytvoření trezoru služby Backup
Trezor služby Backup je entita správy v Azure, která ukládá zálohovaná data pro různé novější úlohy, které Azure Backup podporuje, například servery Azure Database for PostgreSQL a disky Azure. Trezory záloh usnadňují uspořádání zálohovaných dat a zároveň minimalizují režijní náklady na správu. Trezory záloh jsou založené na modelu Azure Resource Manageru v Azure, který poskytuje vylepšené možnosti, které pomáhají zabezpečit zálohovaná data.
Před vytvořením trezoru služby Backup zvolte redundanci úložiště dat v trezoru a pak vytvořte trezor služby Backup s danou redundancí úložiště a umístěním. Přečtěte si další informace o vytváření trezoru služby Backup.
Poznámka:
I když vybraný trezor může mít nastavení globální redundance , zálohování pro AKS aktuálně podporuje pouze provozní úroveň . Všechny zálohy se ukládají ve vašem předplatném ve stejné oblasti jako cluster AKS a nekopírují se do úložiště trezoru služby Backup.
Pokud chcete vytvořit trezor služby Backup, spusťte následující příkaz:
az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
Po vytvoření trezoru vytvořte zásadu zálohování pro ochranu clusterů AKS.
Vytvoření zásad zálohování
Pokud chcete porozumět vnitřním komponentám zásad zálohování pro zálohování AKS, načtěte šablonu zásad pomocí příkazu az dataprotection backup-policy get-default-policy-template
. Tento příkaz vrátí výchozí šablonu zásad pro daný typ zdroje dat. Pomocí této šablony zásad můžete vytvořit novou zásadu.
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"
}
]
}
Šablona zásad se skládá z kritérií triggeru (která rozhoduje o faktorech pro aktivaci úlohy zálohování) a životního cyklu (který se rozhodne, kdy se mají zálohy odstranit, zkopírovat nebo přesunout). V zálohování AKS je výchozí hodnota triggeru naplánovaná hodinová aktivační událost každých 4 hodiny (PT4H) a uchovávání každé zálohy je sedm dní.
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"
}
}
]
Zálohování pro AKS poskytuje více záloh za den. Pokud požadujete častější zálohování, zvolte frekvenci zálohování po hodinách, která má možnost provádět zálohování s intervaly každých 4, 6, 8 nebo 12 hodin. Zálohy se plánují na základě vybraného časového intervalu.
Důležité
Čas dne označuje čas spuštění zálohování, nikoli čas dokončení zálohování.
Jakmile šablonu stáhnete jako soubor JSON, můžete ji upravit pro plánování a uchovávání podle potřeby. Pak vytvořte novou zásadu s výsledným kódem JSON. Pokud chcete upravit hodinovou frekvenci nebo dobu uchovávání, použijte az dataprotection backup-policy trigger set
příkazy a/nebo az dataprotection backup-policy retention-rule set
.
Poznámka:
Pokud chcete ukládat zálohovaná data na úrovni trezoru, která se mají uchovávat pro účely dlouhodobého dodržování předpisů nebo pro regionální zotavení po havárii prostřednictvím obnovení mezi oblastmi, budete muset ve výchozí šabloně definovat nové pravidlo uchovávání informací, které definuje, jak dlouho má být záloha uložena v trezoru.
Podívejme se na příklad, kde aktualizujeme výchozí šablonu zásad zálohování a přidáme pravidlo uchovávání informací, které bude uchovávat první úspěšné zálohování za den ve vrstvě trezoru po dobu 30 dnů.
Pomocí příkazu az dataprotection backup-policy retention-rule create-lifecycle
vytvořte pravidlo uchovávání a pak přidejte pravidlo uchovávání do šablony zásad zálohování pomocí příkazu ''
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
Jakmile json zásady obsahuje všechny požadované hodnoty, pokračujte vytvořením nové zásady z objektu az dataprotection backup-policy create
zásad pomocí příkazu.
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
Příprava clusteru AKS na zálohování
Po dokončení vytváření trezoru a zásad musíte provést následující požadavky, abyste cluster AKS připravili na zálohování:
Vytvořte účet úložiště a kontejner objektů blob.
Zálohování pro AKS ukládá prostředky Kubernetes do kontejneru objektů blob jako zálohy. Pokud chcete cluster AKS připravit na zálohování, musíte do clusteru nainstalovat rozšíření. Toto rozšíření vyžaduje jako vstupy účet úložiště a kontejner objektů blob.
Pokud chcete vytvořit nový účet úložiště, spusťte následující příkaz:
az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --location $region --sku Standard_LRS
Po vytvoření účtu úložiště vytvořte kontejner objektů blob uvnitř spuštěním následujícího příkazu:
az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode login
Zjistěte, jak povolit nebo zakázat konkrétní funkce, jako je privátní koncový bod, při vytváření účtu úložiště a kontejneru objektů blob.
Poznámka:
- Účet úložiště a cluster AKS by měly být ve stejné oblasti a předplatném.
- Kontejner objektů blob by neměl obsahovat žádné dříve vytvořené systémy souborů (s výjimkou zálohování pro AKS).
- Pokud je váš zdrojový nebo cílový cluster AKS v privátní virtuální síti, musíte vytvořit privátní koncový bod pro připojení účtu úložiště ke clusteru AKS.
Nainstalujte rozšíření zálohování.
Rozšíření zálohování je povinné nainstalovat v clusteru AKS, aby bylo možné provádět všechny operace zálohování a obnovení. Rozšíření zálohování vytvoří v clusteru obor názvů a použije stejný obor názvů
dataprotection-microsoft
k nasazení prostředků. Rozšíření vyžaduje účet úložiště a kontejner objektů blob jako vstupy pro instalaci.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
V rámci instalace rozšíření se identita uživatele vytvoří ve skupině prostředků fondu uzlů clusteru AKS. Aby rozšíření získalo přístup k účtu úložiště, musíte tuto identitu poskytnout roli Přispěvatel dat v objektech blob služby Storage. Pokud chcete přiřadit požadovanou roli, spusťte následující příkaz:
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
Povolení důvěryhodného přístupu
Aby se trezor služby Backup mohl připojit ke clusteru AKS, musíte povolit důvěryhodný přístup , protože trezor záloh může mít přímý pohled na cluster AKS.
Pokud chcete povolit důvěryhodný přístup, spusťte následující příkaz:
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
Konfigurace záloh
S vytvořeným trezorem služby Backup a zásadami zálohování a clusterem AKS v připraveném stavu zálohování teď můžete začít zálohovat cluster AKS.
Příprava požadavku
Konfigurace zálohování se provádí ve dvou krocích:
Připravte konfiguraci zálohování, která definuje, které prostředky clusteru
az dataprotection backup-instance initialize-backupconfig
se mají zálohovat pomocí příkazu. Příkaz vygeneruje JSON, který můžete podle potřeby aktualizovat a definovat konfiguraci zálohování pro cluster AKS.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 }
Následující obory názvů se přeskočí z konfigurace zálohování a nenakonfigurují se pro zálohy: kube-system, kube-node-lease, kube-public.
Pomocí příkazu připravte příslušný požadavek pomocí příslušného trezoru, zásad, clusteru AKS, konfigurace zálohování a skupiny
az dataprotection backup-instance initialize
prostředků snímků.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
Teď pomocí výstupu JSON tohoto příkazu nakonfigurujte zálohování clusteru AKS.
Přiřazení požadovaných oprávnění a ověření
Trezor služby Backup používá spravovanou identitu pro přístup k dalším prostředkům Azure. Ke konfiguraci zálohování clusteru AKS vyžaduje spravovaná identita trezoru služby Backup sadu oprávnění ke clusteru AKS a skupinám prostředků, kde se vytvářejí a spravují snímky. Cluster AKS také vyžaduje oprávnění ke skupině prostředků snímku.
Pouze spravovaná identita přiřazená systémem je aktuálně podporována pro zálohování (trezor služby Backup i cluster AKS). Spravovaná identita přiřazená systémem je omezena na jeden prostředek a je svázaná s životním cyklem tohoto prostředku. Oprávnění ke spravované identitě můžete udělit pomocí řízení přístupu na základě role v Azure (Azure RBAC). Spravovaná identita je instanční objekt speciálního typu, který se dá použít jenom s prostředky Azure. Přečtěte si další informace o spravovaných identitách.
Při připraveném požadavku nejprve musíte ověřit, jestli jsou požadované role přiřazené k prostředkům uvedeným výše, spuštěním následujícího příkazu:
az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault
Pokud ověření selže a chybí určitá oprávnění, můžete je přiřadit spuštěním následujícího příkazu:
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
Jakmile jsou oprávnění přiřazená, znovu proveďte ověření pomocí následujícího příkazu pro zálohování :
az dataprotection backup-instance create --backup-instance backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault
Spuštění zálohování na vyžádání
Pokud chcete načíst příslušnou instanci zálohování, na které chcete aktivovat zálohování, spusťte az dataprotection backup-instance list-from-resourcegraph --
příkaz.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --query aksAssignedIdentity.id
Teď aktivujte zálohování instance zálohování na vyžádání spuštěním následujícího příkazu:
az dataprotection backup-instance adhoc-backup --rule-name "BackupDaily" --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid
Sledování úloh
Sledujte úlohy zálohování, na kterých je spuštěný az dataprotection job
příkaz. Můžete zobrazit seznam všech úloh a načíst konkrétní podrobnosti úlohy.
Pomocí Služby Resource Graph můžete také sledovat všechny úlohy napříč všemi předplatnými, skupinami prostředků a trezory služby Backup spuštěním az dataprotection job list-from-resourcegraph
příkazu získat příslušnou úlohu.
Zálohování na vyžádání:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation OnDemandBackup
Pro plánované zálohování:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation ScheduledBackup
Další kroky
- Obnovení clusteru Azure Kubernetes Service pomocí Azure CLI, Azure PowerShellu
- Správa záloh clusteru Azure Kubernetes Service
- Informace o zálohování clusteru Azure Kubernetes Service