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 trezorované zálohování pro cluster Azure Kubernetes Service (AKS) pomocí Azure Bicep.
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í souboru Bicep a Azure PowerShellu. Další informace o vývoji souborů Bicep najdete v dokumentaci k Bicep.
Bicep je jazyk pro deklarativní nasazování prostředků Azure. K vývoji šablon Azure Resource Manageru (šablon ARM) můžete použít Bicep místo JSON. Syntaxe Bicep snižuje složitost a zlepšuje vývojové prostředí. Bicep je transparentní abstrakce oproti formátu JSON šablony ARM, která poskytuje všechny možnosti šablony JSON. Během nasazování převede nástroj příkazového řádku Bicep soubor Bicep na JSON šablony ARM. Soubor Bicep uvádí prostředky a vlastnosti prostředků Azure bez zápisu posloupnosti programovacích příkazů pro vytváření prostředků.
Typy prostředků, verze rozhraní API a vlastnosti platné v šabloně ARM jsou také platné v souboru Bicep.
Požadavky
Pokud chcete nastavit prostředí pro vývoj Bicep, podívejte se na 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í.
@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
Nasazení šablony
Pokud chcete tuto šablonu nasadit, uložte ji do GitHubu nebo do preferovaného umístění a pak do okna prostředí vložte následující skript PowerShellu. Kód vložíte tak, že kliknete pravým tlačítkem myši na okno prostředí a pak vyberete Vložit.
$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
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