Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku Szybki start opisano sposób konfigurowania kopii zapasowej magazynu dla klastra usługi Azure Kubernetes Service (AKS) przy użyciu usługi Azure Bicep.
Usługa Azure Backup for AKS to natywna dla chmury, gotowa do użycia w przedsiębiorstwie usługa tworzenia kopii zapasowych skoncentrowana na aplikacjach, która umożliwia szybkie konfigurowanie kopii zapasowych dla klastrów usługi AKS.Usługa Azure Backup umożliwia tworzenie kopii zapasowych klastrów usługi AKS przy użyciu wielu opcji , takich jak witryna Azure Portal, program PowerShell, interfejs wiersza polecenia, usługa Azure Resource Manager, Bicep itd. Ten Szybki start opisuje, jak utworzyć kopię zapasową klastrów AKS za pomocą pliku Bicep i programu Azure PowerShell. Aby uzyskać więcej informacji na temat tworzenia plików Bicep, zobacz dokumentację aplikacji Bicep.
Bicep to język deklaratywnego wdrażania zasobów platformy Azure. Możesz użyć Bicep zamiast JSON do tworzenia szablonów usługi Azure Resource Manager (szablonów usługi ARM). Składnia Bicep zmniejsza złożoność i poprawia środowisko programistyczne. Bicep to przezroczysta abstrakcja w formacie JSON szablonu usługi ARM, która zapewnia wszystkie możliwości szablonu JSON. Podczas wdrażania interfejs wiersza polecenia Bicep konwertuje plik Bicep na kod JSON szablonu usługi ARM. Plik Bicep zawiera zasoby i właściwości zasobów platformy Azure bez konieczności pisania sekwencji poleceń programowania w celu utworzenia zasobów.
Typy zasobów, wersje interfejsu API i właściwości prawidłowe w szablonie usługi ARM są również prawidłowe w pliku Bicep.
Wymagania wstępne
Aby skonfigurować środowisko na potrzeby programowania aplikacji Bicep, zobacz Instalowanie narzędzi Bicep.
Uwaga
Zainstaluj najnowszy moduł programu Azure PowerShell i interfejs wiersza polecenia Bicep zgodnie z opisem w artykule.
Przegląd szablonu
Ten szablon umożliwia skonfigurowanie kopii zapasowej klastra usługi AKS. W tym szablonie utworzymy magazyn kopii zapasowych z zasadami tworzenia kopii zapasowych dla klastra usługi AKS z czterogodzinnym harmonogramem i siedmiodniowym czasem przechowywania.
@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
Wdrażanie szablonu
Aby wdrożyć ten szablon, zapisz go w usłudze GitHub lub preferowanej lokalizacji, a następnie wklej następujący skrypt programu PowerShell w oknie powłoki. Aby wkleić kod, kliknij prawym przyciskiem myszy okno powłoki, a następnie wybierz polecenie Wklej.
$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
Następne kroki
- Przywracanie klastra usługi Azure Kubernetes Service przy użyciu programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure
- Zarządzanie kopiami zapasowymi klastra usługi Azure Kubernetes Service
- Informacje o kopii zapasowej klastra usługi Azure Kubernetes Service