Skip to content

Commit a982b13

Browse files
committed
AKS Backup Vault Tier and CRR - PLR
1 parent 6d90a12 commit a982b13

9 files changed

+748
-20
lines changed

articles/backup/azure-kubernetes-service-cluster-backup.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ title: Back up Azure Kubernetes Service by using Azure Backup
33
description: Learn how to back up Azure Kubernetes Service (AKS) by using Azure Backup.
44
ms.topic: how-to
55
ms.service: azure-backup
6-
ms.custom:
7-
- ignite-2023
8-
ms.date: 01/03/2024
6+
ms.date: 11/04/2024
97
author: AbhishekMallick-MS
108
ms.author: v-abhmallick
119
---
@@ -16,9 +14,6 @@ This article describes how to configure and back up Azure Kubernetes Service (AK
1614

1715
You can use Azure Backup to back up AKS clusters (cluster resources and persistent volumes attached to the cluster) by using the Backup extension, which must be installed in the cluster. The Backup vault communicates with the cluster via the Backup extension to perform backup and restore operations.
1816

19-
> [!NOTE]
20-
> Vaulted backup and Cross Region Restore for AKS using Azure Backup are currently in preview.
21-
2217
## Before you begin
2318

2419
- Currently, AKS Backup supports only Azure Disk Storage-based persistent volumes enabled by CSI driver. The backups are stored in an operational datastore only (backup data is stored in your tenant and isn't moved to a vault). The Backup vault and AKS cluster must be in the same region.

articles/backup/quick-backup-aks.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22
title: "Quickstart: Configure an Azure Kubernetes Services cluster backup"
33
description: Learn how to configure backup for an Azure Kubernetes Service (AKS) cluster, and then use Azure Backup to back up specific items in the cluster.
44
ms.topic: quickstart
5-
ms.date: 10/01/2024
5+
ms.date: 11/04/2024
66
ms.service: azure-backup
7-
ms.custom:
8-
- ignite-2023
97
author: AbhishekMallick-MS
108
ms.author: v-abhmallick
119
---
@@ -37,9 +35,6 @@ The Backup vault communicates with the cluster via the Backup extension to compl
3735

3836
:::image type="content" source="./media/quick-backup-aks/backup-vault-review.png" alt-text="Screenshot that shows the review page for Configure Backup." lightbox="./media/quick-backup-aks/backup-vault-review.png":::
3937

40-
> [!NOTE]
41-
> Before you enable Trusted Access, enable the `TrustedAccessPreview` feature flag for the `Microsoft.ContainerServices` resource provider on the subscription.
42-
4338
1. Select a backup policy, which defines the schedule for backups and their retention period. Then select **Next**.
4439

4540
:::image type="content" source="./media/azure-kubernetes-service-cluster-backup/select-backup-policy.png" alt-text="Screenshot that shows the Backup policy tab." lightbox="./media/azure-kubernetes-service-cluster-backup/select-backup-policy.png":::
Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
---
2+
title: Quickstart - Configure backup for an Azure Kubernetes Service (AKS) cluster using Azure Backup via Azure Resource Manager
3+
description: Learn how to quickly configure backup for a Kubernetes cluster using Azure Resource Manager.
4+
ms.service: azure-backup
5+
ms.topic: quickstart
6+
ms.date: 05/31/2024
7+
ms.custom: devx-track-terraform, devx-track-extended-azdevcli
8+
ms.reviewer: rajats
9+
ms.author: v-abhmallick
10+
author: AbhishekMallick-MS
11+
---
12+
13+
# Quickstart: Configure backup for an Azure Kubernetes Service (AKS) cluster using Azure Resource Manager
14+
15+
This quickstart describes how to configure backup for an Azure Kubernetes Service (AKS) cluster using Azure Resource Manager.
16+
17+
Azure Backup for AKS is a cloud-native, enterprise-ready, application-centric backup service that lets you quickly configure backup for AKS clusters.[Azure Backup](backup-azure-mysql-flexible-server-about.md) allows you to back up your AKS clusters using multiple options - such as Azure portal, PowerShell, CLI, Azure Resource Manager, Bicep, and so on. This quickstart describes how to back up an AKS clusters with an Azure Resource Manager template and Azure PowerShell. For more information on developing ARM templates, see the [Azure Resource Manager documentation](../azure-resource-manager/index.yml)
18+
19+
[!INCLUDE [About Azure Resource Manager](~/reusable-content/ce-skilling/azure/includes/resource-manager-quickstart-introduction.md)]
20+
21+
## Prerequisites
22+
23+
To set up your environment for Bicep development, see [Install Bicep tools](../azure-resource-manager/bicep/install.md).
24+
25+
>[!Note]
26+
>Install the latest [Azure PowerShell module](/powershell/azure/new-azureps-module-az) and the Bicep CLI as detailed in article.
27+
28+
## Review the template
29+
30+
This template enables you to configure backup for an AKS cluster. In this template, we create a backup vault with a backup policy for the AKS cluster with a *four hourly* schedule and a *seven day* retention duration.
31+
32+
```JSON
33+
{
34+
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
35+
"contentVersion": "1.0.0.0",
36+
"parameters": {
37+
"resourceGroupName": { "type": "string" },
38+
"resourceGroupLocation": { "type": "string" },
39+
"backupResourceGroupName": { "type": "string" },
40+
"backupResourceGroupLocation": { "type": "string" },
41+
"aksClusterName": { "type": "string" },
42+
"dnsPrefix": { "type": "string" },
43+
"nodeCount": { "type": "int" },
44+
"backupVaultName": { "type": "string" },
45+
"datastoreType": { "type": "string" },
46+
"redundancy": { "type": "string" },
47+
"backupPolicyName": { "type": "string" },
48+
"backupExtensionName": { "type": "string" },
49+
"backupExtensionType": { "type": "string" },
50+
"storageAccountName": { "type": "string" }
51+
},
52+
"variables": {
53+
"backupContainerName": "tfbackup"
54+
},
55+
"resources": [
56+
{
57+
"type": "Microsoft.Resources/resourceGroups",
58+
"apiVersion": "2021-04-01",
59+
"location": "[parameters('resourceGroupLocation')]",
60+
"name": "[parameters('resourceGroupName')]"
61+
},
62+
{
63+
"type": "Microsoft.Resources/resourceGroups",
64+
"apiVersion": "2021-04-01",
65+
"location": "[parameters('backupResourceGroupLocation')]",
66+
"name": "[parameters('backupResourceGroupName')]"
67+
},
68+
{
69+
"type": "Microsoft.ContainerService/managedClusters",
70+
"apiVersion": "2023-05-01",
71+
"location": "[parameters('resourceGroupLocation')]",
72+
"name": "[parameters('aksClusterName')]",
73+
"properties": {
74+
"dnsPrefix": "[parameters('dnsPrefix')]",
75+
"agentPoolProfiles": [
76+
{
77+
"name": "agentpool",
78+
"count": "[parameters('nodeCount')]",
79+
"vmSize": "Standard_D2_v2",
80+
"type": "VirtualMachineScaleSets",
81+
"mode": "System"
82+
}
83+
],
84+
"identity": {
85+
"type": "SystemAssigned"
86+
},
87+
"networkProfile": {
88+
"networkPlugin": "kubenet",
89+
"loadBalancerSku": "standard"
90+
}
91+
},
92+
"dependsOn": [
93+
"[resourceId('Microsoft.Resources/resourceGroups', parameters('resourceGroupName'))]",
94+
"[resourceId('Microsoft.Resources/resourceGroups', parameters('backupResourceGroupName'))]"
95+
]
96+
},
97+
{
98+
"type": "Microsoft.DataProtection/backupVaults",
99+
"apiVersion": "2023-01-01",
100+
"location": "[parameters('resourceGroupLocation')]",
101+
"name": "[parameters('backupVaultName')]",
102+
"identity": {
103+
"type": "SystemAssigned"
104+
},
105+
"properties": {
106+
"dataStoreType": "[parameters('datastoreType')]",
107+
"redundancy": "[parameters('redundancy')]"
108+
},
109+
"dependsOn": [
110+
"[resourceId('Microsoft.ContainerService/managedClusters', parameters('aksClusterName'))]"
111+
]
112+
},
113+
{
114+
"type": "Microsoft.DataProtection/backupVaults/backupPolicies",
115+
"apiVersion": "2023-01-01",
116+
"name": "[concat(parameters('backupVaultName'), '/', parameters('backupPolicyName'))]",
117+
"properties": {
118+
"backupRepeatingTimeIntervals": ["R/2024-04-14T06:33:16+00:00/PT4H"],
119+
"defaultRetentionRule": {
120+
"lifeCycle": {
121+
"duration": "P7D",
122+
"dataStoreType": "OperationalStore"
123+
}
124+
}
125+
},
126+
"dependsOn": [
127+
"[resourceId('Microsoft.DataProtection/backupVaults', parameters('backupVaultName'))]"
128+
]
129+
},
130+
{
131+
"type": "Microsoft.Storage/storageAccounts",
132+
"apiVersion": "2022-05-01",
133+
"location": "[parameters('backupResourceGroupLocation')]",
134+
"name": "[parameters('storageAccountName')]",
135+
"sku": {
136+
"name": "Standard_LRS"
137+
},
138+
"kind": "StorageV2",
139+
"dependsOn": [
140+
"[resourceId('Microsoft.ContainerService/managedClusters', parameters('aksClusterName'))]"
141+
]
142+
},
143+
{
144+
"type": "Microsoft.Storage/storageAccounts/blobServices/containers",
145+
"apiVersion": "2021-04-01",
146+
"name": "[concat(parameters('storageAccountName'), '/default/', variables('backupContainerName'))]",
147+
"properties": {
148+
"publicAccess": "None"
149+
},
150+
"dependsOn": [
151+
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
152+
]
153+
},
154+
{
155+
"type": "Microsoft.KubernetesConfiguration/extensions",
156+
"apiVersion": "2023-05-01",
157+
"name": "[concat(parameters('aksClusterName'), '/', parameters('backupExtensionName'))]",
158+
"properties": {
159+
"extensionType": "[parameters('backupExtensionType')]",
160+
"configurationSettings": {
161+
"configuration.backupStorageLocation.bucket": "[variables('backupContainerName')]",
162+
"configuration.backupStorageLocation.config.storageAccount": "[parameters('storageAccountName')]",
163+
"configuration.backupStorageLocation.config.resourceGroup": "[parameters('backupResourceGroupName')]",
164+
"configuration.backupStorageLocation.config.subscriptionId": "[subscription().subscriptionId]",
165+
"credentials.tenantId": "[subscription().tenantId]"
166+
}
167+
},
168+
"dependsOn": [
169+
"[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', parameters('storageAccountName'), 'default', variables('backupContainerName'))]"
170+
]
171+
}
172+
],
173+
"outputs": {
174+
"aksClusterId": {
175+
"type": "string",
176+
"value": "[resourceId('Microsoft.ContainerService/managedClusters', parameters('aksClusterName'))]"
177+
},
178+
"backupVaultId": {
179+
"type": "string",
180+
"value": "[resourceId('Microsoft.DataProtection/backupVaults', parameters('backupVaultName'))]"
181+
}
182+
}
183+
}
184+
```
185+
186+
## Deploy the template
187+
188+
To deploy the template, store the template in a GitHub repository and then paste the following PowerShell script into the shell window.
189+
190+
```azurepowershell-interactive
191+
$projectName = Read-Host -Prompt "Enter a project name (limited to eight characters) that is used to generate Azure resource names"
192+
$location = Read-Host -Prompt "Enter the location (for example, centralus)"
193+
194+
$resourceGroupName = "${projectName}rg"
195+
$templateUri = "https//templateuri"
196+
197+
New-AzResourceGroup -Name $resourceGroupName -Location $location
198+
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri -projectName
199+
```
200+
201+
## Next steps
202+
203+
- [Restore Azure Kubernetes Service cluster using PowerShell](azure-kubernetes-service-cluster-restore-using-powershell.md)
204+
- [Manage Azure Kubernetes Service cluster backups](azure-kubernetes-service-cluster-manage-backups.md)
205+
- [About Azure Kubernetes Service cluster backup](azure-kubernetes-service-cluster-backup-concept.md)

0 commit comments

Comments
 (0)