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 rychlý start popisuje, jak nakonfigurovat zálohování clusteru Azure Kubernetes Service (AKS) pomocí Azure Resource Manageru.
Azure Backup pro AKS je cloudová služba zálohování zaměřená na podnikovou aplikaci, která umožňuje rychle nakonfigurovat zálohování pro clustery AKS.Azure Backup umožňuje zálohovat clustery AKS pomocí několika možností, jako je Azure Portal, PowerShell, CLI, Azure Resource Manager, Bicep atd. Tento rychlý start popisuje, jak zálohovat clustery AKS pomocí šablony Azure Resource Manageru a Azure PowerShellu. Další informace o vývoji šablon ARM najdete v dokumentaci k Azure Resource Manageru .
Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.
Požadavky
Pokud chcete nastavit prostředí pro vývoj Bicep, viz Instalace nástrojů Bicep.
Poznámka:
Nainstalujte nejnovější modul Azure PowerShellu a rozhraní příkazového řádku Bicep, jak je podrobně popsáno v článku.
Kontrola šablony
Tato šablona umožňuje nakonfigurovat zálohování clusteru AKS. V této šabloně vytvoříme trezor záloh se zásadami zálohování pro cluster AKS se čtyřmi hodinovými plány a sedmidenní dobou uchovávání.
{
"$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'))]"
}
}
}
Nasazení šablony
Pokud chcete šablonu nasadit, uložte ji do úložiště GitHub a pak do okna prostředí vložte následující skript PowerShellu.
$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
Další kroky
- Obnovení clusteru Azure Kubernetes Service pomocí Azure PowerShellu, Azure CLI
- Správa záloh clusteru Azure Kubernetes Service
- Informace o zálohování clusteru Azure Kubernetes Service