Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida introduttiva descrive come configurare il backup per un cluster servizio Azure Kubernetes (AKS) usando Azure Resource Manager.
Backup di Azure per il servizio Azure Kubernetes è un servizio di backup incentrato sulle applicazioni nativo del cloud che consente di configurare rapidamente il backup per i cluster del servizio Azure Kubernetes. Backup di Azure consente di eseguire il backup dei cluster del servizio Azure Kubernetes usando più opzioni, ad esempio portale di Azure, PowerShell, interfaccia della riga di comando, Azure Resource Manager, Bicep e così via. Questa guida introduttiva descrive come eseguire il backup di un cluster del servizio Azure Kubernetes con un modello di Azure Resource Manager e Azure PowerShell. Per altre informazioni sullo sviluppo di modelli di Resource Manager, vedere la documentazione di Azure Resource Manager
Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.
Prerequisiti
Per configurare l'ambiente per lo sviluppo Bicep, vedere Installare gli strumenti Bicep.
Nota
Installare il modulo Azure PowerShell più recente e l'interfaccia della riga di comando di Bicep come descritto in dettaglio nell'articolo.
Rivedere il modello
Questo modello consente di configurare il backup per un cluster del servizio Azure Kubernetes. In questo modello viene creato un insieme di credenziali di backup con criteri di backup per il cluster del servizio Azure Kubernetes con una pianificazione oraria di quattro ore e una durata di conservazione di sette giorni .
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"resourceGroupName": { "type": "string" },
"resourceGroupLocation": { "type": "string" },
"backupResourceGroupName": { "type": "string" },
"backupResourceGroupLocation": { "type": "string" },
"aksClusterName": { "type": "string" },
"dnsPrefix": { "type": "string" },
"nodeCount": { "type": "int" },
"backupVaultName": { "type": "string" },
"datastoreType": { "type": "string" },
"redundancy": { "type": "string" },
"backupPolicyName": { "type": "string" },
"backupExtensionName": { "type": "string" },
"backupExtensionType": { "type": "string" },
"storageAccountName": { "type": "string" }
},
"variables": {
"backupContainerName": "tfbackup"
},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"location": "[parameters('resourceGroupLocation')]",
"name": "[parameters('resourceGroupName')]"
},
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"location": "[parameters('backupResourceGroupLocation')]",
"name": "[parameters('backupResourceGroupName')]"
},
{
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2023-05-01",
"location": "[parameters('resourceGroupLocation')]",
"name": "[parameters('aksClusterName')]",
"properties": {
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "agentpool",
"count": "[parameters('nodeCount')]",
"vmSize": "Standard_D2_v2",
"type": "VirtualMachineScaleSets",
"mode": "System"
}
],
"identity": {
"type": "SystemAssigned"
},
"networkProfile": {
"networkPlugin": "kubenet",
"loadBalancerSku": "standard"
}
},
"dependsOn": [
"[resourceId('Microsoft.Resources/resourceGroups', parameters('resourceGroupName'))]",
"[resourceId('Microsoft.Resources/resourceGroups', parameters('backupResourceGroupName'))]"
]
},
{
"type": "Microsoft.DataProtection/backupVaults",
"apiVersion": "2023-01-01",
"location": "[parameters('resourceGroupLocation')]",
"name": "[parameters('backupVaultName')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"dataStoreType": "[parameters('datastoreType')]",
"redundancy": "[parameters('redundancy')]"
},
"dependsOn": [
"[resourceId('Microsoft.ContainerService/managedClusters', parameters('aksClusterName'))]"
]
},
{
"type": "Microsoft.DataProtection/backupVaults/backupPolicies",
"apiVersion": "2023-01-01",
"name": "[concat(parameters('backupVaultName'), '/', parameters('backupPolicyName'))]",
"properties": {
"backupRepeatingTimeIntervals": ["R/2024-04-14T06:33:16+00:00/PT4H"],
"defaultRetentionRule": {
"lifeCycle": {
"duration": "P7D",
"dataStoreType": "OperationalStore"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.DataProtection/backupVaults', parameters('backupVaultName'))]"
]
},
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-05-01",
"location": "[parameters('backupResourceGroupLocation')]",
"name": "[parameters('storageAccountName')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"dependsOn": [
"[resourceId('Microsoft.ContainerService/managedClusters', parameters('aksClusterName'))]"
]
},
{
"type": "Microsoft.Storage/storageAccounts/blobServices/containers",
"apiVersion": "2021-04-01",
"name": "[concat(parameters('storageAccountName'), '/default/', variables('backupContainerName'))]",
"properties": {
"publicAccess": "None"
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
},
{
"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2023-05-01",
"name": "[concat(parameters('aksClusterName'), '/', parameters('backupExtensionName'))]",
"properties": {
"extensionType": "[parameters('backupExtensionType')]",
"configurationSettings": {
"configuration.backupStorageLocation.bucket": "[variables('backupContainerName')]",
"configuration.backupStorageLocation.config.storageAccount": "[parameters('storageAccountName')]",
"configuration.backupStorageLocation.config.resourceGroup": "[parameters('backupResourceGroupName')]",
"configuration.backupStorageLocation.config.subscriptionId": "[subscription().subscriptionId]",
"credentials.tenantId": "[subscription().tenantId]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', parameters('storageAccountName'), 'default', variables('backupContainerName'))]"
]
}
],
"outputs": {
"aksClusterId": {
"type": "string",
"value": "[resourceId('Microsoft.ContainerService/managedClusters', parameters('aksClusterName'))]"
},
"backupVaultId": {
"type": "string",
"value": "[resourceId('Microsoft.DataProtection/backupVaults', parameters('backupVaultName'))]"
}
}
}
Distribuire il modello
Per distribuire il modello, archiviare il modello in un repository GitHub e quindi incollare lo script di PowerShell seguente nella finestra della shell.
$projectName = Read-Host -Prompt "Enter a project name (limited to eight characters) that is used to generate Azure resource names"
$location = Read-Host -Prompt "Enter the location (for example, centralus)"
$resourceGroupName = "${projectName}rg"
$templateUri = "https//templateuri"
New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri -projectName
Passaggi successivi
- Ripristinare servizio Azure Kubernetes cluster con Azure PowerShell, interfaccia della riga di comando di Azure
- Gestire i backup del cluster del servizio Azure Kubernetes
- Informazioni sul backup del cluster del servizio Azure Kubernetes