Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. Úložiště zálohování komunikuje s clusterem prostřednictvím tohoto rozšíření pro 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. Úložiště záloh a cluster AKS by měly být ve stejném regionu.
Zálohy AKS jsou ukládány pomocí kontejneru typu blob a skupiny prostředků. Kontejner objektů blob obsahuje uložené prostředky clusteru AKS, zatímco snímky trvalých svazků jsou uloženy 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 blob kontejner.
AKS podporuje zálohování jednou denně v současné době. 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 konfigurace zálohování a obnovení se ujistěte, že
Microsoft.KubernetesConfiguration,Microsoft.DataProtectionaMicrosoft.ContainerServicejsou zaregistrovány pro vaše předplatné.Nezapomeňte provést všechny předpoklady před zahájením operace zálohování nebo obnovení pro zálohování AKS.
Další informace o podporovaných scénářích, omezeních a dostupnosti najdete v matici podpory.
Vytvořte trezor zálohy
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 více informací o vytváření úložiště záloh.
Poznámka:
I když vybrané úložiště 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í úložiště 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 několik záloh denně. 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í.
Plán zálohování se řídí formátem doby trvání ISO 8601. Předpona R intervalu opakování se ale nepodporuje, protože zálohy jsou nakonfigurované tak, aby běžely neomezeně dlouho. Jakákoli hodnota zadaná pomocí R bude ignorována.
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í
Jakmile je vytvoření trezoru a zásad dokončeno, musíte splnit následující předpoklady, abyste připravili cluster AKS na zálohování:
Vytvořte účet úložiště a kontejner blobů.
Zálohování pro AKS ukládá prostředky Kubernetes do blob kontejneru 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 účet úložiště a kontejner objektů blob jako vstupní údaje.
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_LRSPo vytvoření účtu úložiště vytvořte blob kontejner spuštěním následujícího příkazu:
az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode loginZjistěte, jak povolit nebo zakázat konkrétní funkce, jako je privátní koncový bod, v průběhu 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ů
dataprotection-microsofta použije jej k nasazení svých prostředků. Rozšíření vyžaduje účet úložiště a blob kontejner 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 případě, že je cluster AKS ve virtuální síti, budete muset vytvořit privátní koncový bod a propojit účet úložiště s virtuální sítí, ve které se nachází cluster AKS.
#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"
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 této identitě přiřadit roli Přispěvatel dat služby Storage pro objekty blob. 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-backupconfigse 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.
Připravte příslušný požadavek pomocí příkazu
az dataprotection backup-instance initializea použijte k tomu příslušný trezor, zásady, cluster AKS, konfiguraci zálohování a skupinu 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 vyžaduje také 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 služební zásada zvláštního typu, kterou lze použít pouze se zdroji 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
Spusťte zálohu 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
Nyní spusťte zálohování na vyžádání pro instanci zálohy použití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í pracovních pozic
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í 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 pro získání příslušné úlohy.
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