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 con insieme di credenziali per un cluster del servizio Azure Kubernetes (servizio Azure Kubernetes AKS) con Azure Bicep.
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 introduzione rapida descrive come eseguire il backup di un cluster AKS utilizzando un file Bicep e Azure PowerShell. Per altre informazioni sullo sviluppo di file Bicep, vedere la documentazione di Bicep.
Bicep è un linguaggio che consente di distribuire in modo dichiarativo le risorse di Azure. È possibile usare Bicep al posto di JSON per sviluppare modelli di Azure Resource Manager (modelli di ARM). La sintassi Bicep riduce la complessità e migliora l'esperienza di sviluppo. Bicep è un'astrazione trasparente su JSON del modello ARM che fornisce tutte le funzionalità del modello JSON. Durante la distribuzione, l'interfaccia della riga di comando di Bicep converte un file Bicep in un file JSON del modello di Resource Manager. Un file Bicep indica le risorse di Azure e le proprietà delle risorse, senza scrivere una sequenza di comandi di programmazione per creare risorse.
I tipi di risorse, le versioni api e le proprietà validi in un modello di Resource Manager sono validi anche in un file Bicep.
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 .
@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
Distribuire il modello
Per distribuire questo modello, archiviarlo in GitHub o nel percorso preferito e quindi incollare lo script di PowerShell seguente nella finestra della shell. Per incollare il codice, fare clic con il pulsante destro del mouse nella finestra della shell e quindi selezionare Incolla.
$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
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