Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide de démarrage rapide explique comment configurer la sauvegarde archivée d’un cluster Azure Kubernetes Service (AKS) à l’aide d’Azure Bicep.
Sauvegarde Azure pour AKS est un service de sauvegarde cloud natif, prêt pour l’entreprise et centré sur les applications, qui vous permet de configurer rapidement la sauvegarde pour les clusters AKS.Sauvegarde Azure vous permet de sauvegarder vos clusters AKS à l’aide de plusieurs options, telles que le portail Azure, PowerShell, CLI, Azure Resource Manager, Bicep, etc. Ce guide de démarrage rapide explique comment sauvegarder un cluster AKS avec un fichier Bicep et Azure PowerShell. Pour plus d’informations sur le développement de fichiers Bicep, consultez la documentation Bicep.
Bicep est un langage permettant de déployer de manière déclarative des ressources Azure. Vous pouvez utiliser Bicep au lieu de JSON pour développer vos modèles Azure Resource Manager (modèles ARM). La syntaxe Bicep réduit la complexité et améliore l’expérience de développement. Bicep est une abstraction transparente sur un JSON de modèle ARM qui fournit toutes les fonctionnalités de modèle JSON. Pendant le déploiement, l’interface de ligne de commande Bicep convertit un fichier Bicep en un JSON de modèle ARM. Un fichier Bicep déclare les ressources Azure et les propriétés de ressources, sans écrire de séquence de commandes de programmation pour créer des ressources.
Les types de ressources, les versions d’API et les propriétés qui sont valides dans un modèle ARM sont également valides dans un fichier Bicep.
Prérequis
Pour configurer votre environnement pour le développement Bicep, consultez Installer les outils bicep.
Notes
Installez le dernier module Azure PowerShell et l’interface CLI de Bicep, comme décrit dans cet article.
Vérifier le modèle
Ce modèle vous permet de configurer la sauvegarde d’un cluster AKS. Dans ce modèle, nous créons un coffre de sauvegarde avec une stratégie de sauvegarde pour le cluster AKS avec une planification de quatre heures et une durée de rétention de sept jours.
@description('Location for the resource group')
param resourceGroupLocation string
@description('Name of the resource group for AKS and Backup Vault')
param resourceGroupName string
@description('Name of the resource group for storage account and snapshots')
param backupResourceGroupName string
@description('Location for the backup resource group')
param backupResourceGroupLocation string
@description('AKS Cluster name')
param aksClusterName string
@description('DNS prefix for AKS')
param dnsPrefix string
@description('Node count for the AKS Cluster')
param nodeCount int
@description('Name of the Backup Vault')
param backupVaultName string
@description('Datastore type for the Backup Vault')
param datastoreType string
@description('Redundancy type for the Backup Vault')
param redundancy string
@description('Backup policy name')
param backupPolicyName string
@description('Name of the Backup Extension')
param backupExtensionName string
@description('Type of Backup Extension')
param backupExtensionType string
@description('Name of the Storage Account')
param storageAccountName string
var backupContainerName = 'tfbackup'
resource rg 'Microsoft.Resources/resourceGroups@2021-04-01' = {
location: resourceGroupLocation
name: resourceGroupName
}
resource backupRg 'Microsoft.Resources/resourceGroups@2021-04-01' = {
location: backupResourceGroupLocation
name: backupResourceGroupName
}
resource aksCluster 'Microsoft.ContainerService/managedClusters@2023-05-01' = {
location: resourceGroupLocation
name: aksClusterName
properties: {
dnsPrefix: dnsPrefix
agentPoolProfiles: [
{
name: 'agentpool'
count: nodeCount
vmSize: 'Standard_D2_v2'
type: 'VirtualMachineScaleSets'
mode: 'System'
}
]
identity: {
type: 'SystemAssigned'
}
networkProfile: {
networkPlugin: 'kubenet'
loadBalancerSku: 'standard'
}
}
dependsOn: [
rg
backupRg
]
}
resource backupVault 'Microsoft.DataProtection/backupVaults@2023-01-01' = {
location: resourceGroupLocation
name: backupVaultName
identity: {
type: 'SystemAssigned'
}
properties: {
dataStoreType: datastoreType
redundancy: redundancy
}
dependsOn: [
aksCluster
]
}
resource backupPolicy 'Microsoft.DataProtection/backupVaults/backupPolicies@2023-01-01' = {
name: '${backupVaultName}/${backupPolicyName}'
properties: {
backupRepeatingTimeIntervals: ['R/2024-04-14T06:33:16+00:00/PT4H']
defaultRetentionRule: {
lifeCycle: {
duration: 'P7D'
dataStoreType: 'OperationalStore'
}
}
}
dependsOn: [
backupVault
]
}
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = {
location: backupResourceGroupLocation
name: storageAccountName
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
dependsOn: [
aksCluster
]
}
resource backupContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2021-04-01' = {
name: '${storageAccount.name}/default/${backupContainerName}'
properties: {
publicAccess: 'None'
}
dependsOn: [
storageAccount
]
}
resource backupExtension 'Microsoft.KubernetesConfiguration/extensions@2023-05-01' = {
name: '${aksClusterName}/${backupExtensionName}'
properties: {
extensionType: backupExtensionType
configurationSettings: {
'configuration.backupStorageLocation.bucket': backupContainerName
'configuration.backupStorageLocation.config.storageAccount': storageAccountName
'configuration.backupStorageLocation.config.resourceGroup': backupResourceGroupName
'configuration.backupStorageLocation.config.subscriptionId': subscription().subscriptionId
'credentials.tenantId': subscription().tenantId
}
}
dependsOn: [
backupContainer
]
}
output aksClusterId string = aksCluster.id
output backupVaultId string = backupVault.id
Déployer le modèle
Pour déployer ce modèle, stockez-le dans GitHub ou votre emplacement préféré, puis collez le script PowerShell suivant dans la fenêtre de l’interpréteur de commandes. Pour coller le code, cliquez avec le bouton droit sur la fenêtre de l’interpréteur de commandes, puis sélectionnez Coller.
$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 = "templateURI"
New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri -projectName $projectName
Étapes suivantes
- Restaurer le cluster Azure Kubernetes Service à l’aide d’Azure PowerShell, Azure CLI
- Gérer les sauvegardes de cluster Azure Kubernetes Service
- À propos de la sauvegarde de cluster Azure Kubernetes Service