Tworzenie kopii zapasowej usługi Azure Kubernetes Service przy użyciu programu PowerShell
W tym artykule opisano sposób konfigurowania i tworzenia kopii zapasowej usługi Azure Kubernetes Service (AKS) przy użyciu programu Azure PowerShell.
Usługa Azure Backup umożliwia teraz tworzenie kopii zapasowych klastrów usługi AKS (zasobów klastra i trwałych woluminów dołączonych do klastra) przy użyciu rozszerzenia kopii zapasowej, które należy zainstalować w klastrze. Magazyn kopii zapasowych komunikuje się z klastrem za pośrednictwem tego rozszerzenia kopii zapasowej w celu wykonywania operacji tworzenia kopii zapasowych i przywracania.
Przed rozpoczęciem
Przed rozpoczęciem tworzenia kopii zapasowej klastra usługi AKS upewnij się, że zapoznasz się z następującymi wymaganiami wstępnymi:
Obecnie kopia zapasowa usługi AKS obsługuje woluminy trwałe oparte na dyskach platformy Azure (włączone tylko przez sterownik CSI). Kopie zapasowe są przechowywane tylko w operacyjnym magazynie danych (w dzierżawie) i nie są przenoszone do magazynu. Magazyn usługi Backup i klaster usługi AKS powinny znajdować się w tym samym regionie.
Kopia zapasowa usługi AKS używa kontenera obiektów blob i grupy zasobów do przechowywania kopii zapasowych. Kontener obiektów blob zawiera przechowywane w nim zasoby klastra usługi AKS, natomiast trwałe migawki woluminów są przechowywane w grupie zasobów. Klaster AKS i lokalizacje magazynu muszą znajdować się w tym samym regionie. Dowiedz się , jak utworzyć kontener obiektów blob.
Obecnie kopia zapasowa usługi AKS obsługuje tworzenie kopii zapasowych raz dziennie. Obsługuje również częstsze kopie zapasowe (w odstępach co 4, 8 i 12 godzin) dziennie. To rozwiązanie umożliwia przechowywanie danych na potrzeby przywracania przez maksymalnie 360 dni. Dowiedz się, jak utworzyć zasady tworzenia kopii zapasowych.
Należy zainstalować rozszerzenie kopii zapasowej, aby skonfigurować operacje tworzenia i przywracania kopii zapasowych w klastrze usługi AKS. Dowiedz się więcej o rozszerzeniu kopii zapasowej.
Przed zainicjowaniem operacji konfiguracji i przywracania kopii zapasowej upewnij się, że
Microsoft.KubernetesConfiguration
program ,Microsoft.DataProtection
iMicrosoft.ContainerService
są zarejestrowane dla twojej subskrypcji.Przed zainicjowaniem operacji tworzenia kopii zapasowej lub przywracania kopii zapasowej usługi AKS upewnij się, że wszystkie wymagania wstępne są spełnione.
Aby uzyskać więcej informacji na temat obsługiwanych scenariuszy, ograniczeń i dostępności, zobacz macierz obsługi.
Tworzenie magazynu kopii zapasowych
Magazyn usługi Backup to jednostka zarządzania na platformie Azure, która przechowuje dane kopii zapasowej dla różnych nowszych obciążeń obsługiwanych przez usługę Azure Backup, takich jak serwery usługi Azure Database for PostgreSQL i dyski platformy Azure. Magazyny kopii zapasowych ułatwiają organizowanie danych kopii zapasowych przy jednoczesnym zminimalizowaniu obciążenia związanego z zarządzaniem. Są one oparte na modelu usługi Azure Resource Manager, który zapewnia rozszerzone możliwości ułatwiające zabezpieczanie danych kopii zapasowych. Przed utworzeniem magazynu kopii zapasowych wybierz nadmiarowość magazynu danych w magazynie, a następnie utwórz magazyn kopii zapasowych z nadmiarowością magazynu i lokalizacją.
W tym miejscu utworzymy magazyn kopii zapasowych TestBkpVault w regionie Zachodnie stany USA w ramach grupy zasobów testBkpVaultRG. New-AzDataProtectionBackupVault
Użyj polecenia cmdlet , aby utworzyć magazyn kopii zapasowych. Dowiedz się więcej o tworzeniu magazynu kopii zapasowych.
Uwaga
Chociaż wybrany magazyn może mieć ustawienie globalnej nadmiarowości , kopia zapasowa usługi AKS obecnie obsługuje tylko warstwę operacyjną. Wszystkie kopie zapasowe są przechowywane w ramach subskrypcji w tym samym regionie co klaster usługi AKS i nie są kopiowane do magazynu magazynu usługi Backup.
Aby zdefiniować ustawienia magazynu kopii zapasowych, uruchom następujące polecenie cmdlet:
Uwaga
Magazyn jest tworzony tylko z obsługą nadmiarowości lokalnej i magazynu danych operacyjnych.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
Aby utworzyć magazyn kopii zapasowych zgodnie z podanymi wcześniej szczegółami, uruchom następujące polecenie cmdlet:
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
Po zakończeniu tworzenia magazynu utwórz zasady tworzenia kopii zapasowych w celu ochrony klastrów usługi AKS.
Tworzenie zasad kopii zapasowych
Usługa Azure Backup umożliwia tworzenie zasad tworzenia kopii zapasowych dla ochrony klastra usługi AKS przy użyciu codziennych kopii zapasowych lub wielu kopii zapasowych dziennie.
Aby utworzyć zasady tworzenia kopii zapasowych dla klastra usługi AKS, uruchom następujące polecenia cmdlet:
Pobierz szablon zasad przy użyciu polecenia cmdlet
Get-AzDataProtectionPolicyTemplate
i sprawdź składniki wewnętrzne zasad kopii zapasowej dla kopii zapasowej usługi AKS. To polecenie zwraca domyślny szablon zasad dla danego typu źródła danych. Użyj tego szablonu zasad, aby utworzyć nowe zasady.$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
Szablon zasad składa się z kryteriów wyzwalacza (które decydują o czynnikach wyzwalania zadania tworzenia kopii zapasowej) i cyklu życia (który decyduje, kiedy usunąć, skopiować lub przenieść kopie zapasowe). W kopii zapasowej usługi AKS wartość domyślna wyzwalacza to wyzwalacz zaplanowany co 4 godziny (PT4H), a przechowywanie każdej kopii zapasowej wynosi 7 dni.
$policyDefn.PolicyRule[0]. Trigger | fl ObjectType: ScheduleBasedTriggerContext ScheduleRepeatingTimeInterval: {R/2023-04-05T13:00:00+00:00/PT4H} TaggingCriterion: {Default} $policyDefn.PolicyRule[1]. Lifecycle | fl DeleteAfterDuration: P7D DeleteAfterObjectType: AbsoluteDeleteOption SourceDataStoreObjectType : DataStoreInfoBase SourceDataStoreType: OperationalStore TargetDataStoreCopySetting:
W obszarze Częstotliwość codziennego tworzenia kopii zapasowych określ godzinę wykonania kopii zapasowych.
Ważne
Godzina dnia wskazuje godzinę rozpoczęcia tworzenia kopii zapasowej, a nie godzinę zakończenia tworzenia kopii zapasowej. Czas wymagany do ukończenia operacji tworzenia kopii zapasowej zależy od różnych czynników, w tym liczby i rozmiaru woluminów trwałych oraz współczynnika zmian między kolejnymi kopiami zapasowymi.
Tworzenie kopii zapasowej dla usługi AKS zapewnia wiele kopii zapasowych dziennie. Kopie zapasowe są równomiernie dystrybuowane w ciągu dnia, jeśli potrzebujesz częstszych kopii zapasowych, wybierając częstotliwość co godzinę tworzenia kopii zapasowych, która ma możliwość tworzenia kopii zapasowych z interwałami co 4, 6, 8 lub 12 godzin. Kopie zapasowe są zaplanowane na podstawie wybranego interwału czasu. Jeśli na przykład wybierzesz co 4 godziny, kopie zapasowe są wykonywane w przybliżeniu w przedziale co 4 godziny.
Jeśli chcesz edytować częstotliwość godzinną lub okres przechowywania, użyj
Edit-AzDataProtectionPolicyTriggerClientObject
poleceń cmdlet i/lubEdit-AzDataProtectionPolicyRetentionRuleClientObject
. Gdy obiekt zasad ma wszystkie wymagane wartości, rozpocznij tworzenie nowych zasad z obiektu zasad przy użyciuNew-AzDataProtectionBackupPolicy
polecenia cmdlet .New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
Przygotowywanie klastra usługi AKS do tworzenia kopii zapasowej
Po zakończeniu tworzenia magazynu i zasad należy wykonać następujące wymagania wstępne, aby przygotować klaster usługi AKS do tworzenia kopii zapasowej:
Tworzenie konta magazynu i kontenera obiektów blob
Kopia zapasowa usługi AKS przechowuje zasoby Kubernetes w kontenerze obiektów blob jako kopie zapasowe. Aby przygotować klaster usługi AKS do tworzenia kopii zapasowej, należy zainstalować rozszerzenie w klastrze. To rozszerzenie wymaga konta magazynu i kontenera obiektów blob jako danych wejściowych.
Aby utworzyć nowe konto magazynu i kontener obiektów blob, zapoznaj się z tymi krokami.
Uwaga
- Konto magazynu i klaster usługi AKS powinny znajdować się w tym samym regionie i subskrypcji.
- Kontener obiektów blob nie powinien zawierać żadnych wcześniej utworzonych systemów plików (z wyjątkiem utworzonych przez kopię zapasową usługi AKS).
- Jeśli źródłowy lub docelowy klaster usługi AKS znajduje się w prywatnej sieci wirtualnej, należy utworzyć prywatny punkt końcowy w celu połączenia konta magazynu z klastrem usługi AKS.
Instalowanie rozszerzenia kopii zapasowej
Rozszerzenie kopii zapasowej jest obowiązkowe do zainstalowania w klastrze usługi AKS w celu wykonywania dowolnych operacji tworzenia kopii zapasowych i przywracania. Rozszerzenie kopii zapasowej tworzy przestrzeń nazw
dataprotection-microsoft
w klastrze i używa jej do wdrażania zasobów. Rozszerzenie wymaga konta magazynu i kontenera obiektów blob jako danych wejściowych do instalacji. Dowiedz się więcej o poleceniach instalacji rozszerzenia.W ramach instalacji rozszerzenia tożsamość użytkownika jest tworzona w grupie zasobów puli węzłów klastra usługi AKS. Aby rozszerzenie uzyskiwało dostęp do konta magazynu, należy podać tę tożsamość jako rolę Współautor konta magazynu. Aby przypisać wymaganą rolę, uruchom następujące polecenie
Włączanie zaufanego dostępu
Aby magazyn kopii zapasowych mógł nawiązać połączenie z klastrem usługi AKS, należy włączyć zaufany dostęp, ponieważ umożliwia magazynowi usługi Backup bezpośredni dostęp do klastra usługi AKS. Dowiedz się , jak włączyć zaufany dostęp.
Uwaga
W przypadku instalacji rozszerzenia kopii zapasowej i włączenia zaufanego dostępu polecenia są dostępne tylko w interfejsie wiersza polecenia platformy Azure.
Konfigurowanie kopii zapasowych
Po utworzeniu zasad magazynu kopii zapasowych i kopii zapasowych oraz klastra usługi AKS w stanie gotowej do utworzenia kopii zapasowej można teraz rozpocząć tworzenie kopii zapasowej klastra usługi AKS.
Kluczowe encje
Klaster usługi AKS do ochrony
Pobierz identyfikator usługi Azure Resource Manager klastra usługi AKS, aby był chroniony. Służy on jako identyfikator klastra. W tym przykładzie użyjemy klastra usługi AKS o nazwie PSTestAKSCluster w grupie zasobów aksrg w innej subskrypcji:
$sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
Grupa zasobów migawki
Trwałe migawki woluminów są przechowywane w grupie zasobów w ramach subskrypcji. Zalecamy utworzenie dedykowanej grupy zasobów jako magazynu danych migawek, który będzie używany przez usługę Azure Backup. Dedykowana grupa zasobów umożliwia ograniczenie uprawnień dostępu do grupy zasobów, zapewniając bezpieczeństwo i łatwość zarządzania danymi kopii zapasowych. Zapisz identyfikator usługi Azure Resource Manager grupy zasobów w lokalizacji, w której chcesz przechowywać trwałe migawki woluminów.
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
Przygotowywanie żądania
Konfiguracja kopii zapasowej jest wykonywana w dwóch krokach:
Przygotuj konfigurację kopii zapasowej, aby zdefiniować, które zasoby klastra mają być tworzone przy użyciu
New-AzDataProtectionBackupConfigurationClientObject
polecenia cmdlet . W poniższym przykładzie konfiguracja jest zdefiniowana jako wszystkie zasoby klastra w bieżącej wersji, a przyszłe przestrzenie nazw zostaną utworzone z etykietą jakokey-value pair x=y
. Ponadto tworzona jest kopia zapasowa wszystkich zasobów o określonym zakresie klastra i woluminów trwałych. Następujące przestrzenie nazw są pomijane z konfiguracji kopii zapasowej i nie są skonfigurowane dla kopii zapasowych: kube-system, kube-node-lease, kube-public.$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
Przygotuj odpowiednie żądanie przy użyciu odpowiedniego magazynu, zasad, klastra usługi AKS, konfiguracji kopii zapasowej i grupy zasobów migawki przy użyciu
Initialize-AzDataProtectionBackupInstance
polecenia cmdlet .$backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
Przypisywanie wymaganych uprawnień i weryfikowanie
Aby przypisać wymagane uprawnienia i przeprowadzić walidację ochrony klastra usługi AKS, uruchom następujące polecenia cmdlet:
Po przygotowaniu żądania należy przypisać użytkownikowi wymagane uprawnienia za pośrednictwem kontroli dostępu na podstawie ról (RBAC) platformy Azure do magazynu (reprezentowanego przez tożsamość systemu zarządzanego magazynu) i klastra usługi AKS. Można to wykonać za pomocą
Set-AzDataProtectionMSIPermission
polecenia cmdlet . Magazyn kopii zapasowych używa tożsamości zarządzanej do uzyskiwania dostępu do innych zasobów platformy Azure. Aby skonfigurować kopię zapasową klastra usługi AKS, tożsamość zarządzana magazynu kopii zapasowych wymaga zestawu uprawnień w klastrze I grupach zasobów usługi AKS, gdzie są tworzone i zarządzane migawki. Ponadto klaster usługi AKS wymaga uprawnień do grupy zasobów migawki.Uwaga
Tylko tożsamość zarządzana przypisana przez system jest obecnie obsługiwana na potrzeby tworzenia kopii zapasowych (zarówno magazynu kopii zapasowych, jak i klastra usługi AKS). Tożsamość zarządzana przypisana przez system jest ograniczona do jednej na zasób i jest powiązana z cyklem życia tego zasobu. Uprawnienia do tożsamości zarządzanej można udzielić przy użyciu kontroli dostępu opartej na rolach platformy Azure. Tożsamość zarządzana to jednostka usługi specjalnego typu, która może być używana tylko z zasobami platformy Azure. Dowiedz się więcej o tożsamościach zarządzanych.
Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
Po przypisaniu uprawnień przetestuj gotowość utworzonego wystąpienia.
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
Po pomyślnym zakończeniu walidacji prześlij żądanie ochrony klastra usługi AKS przy użyciu
New-AzDataProtectionBackupInstance
polecenia cmdlet .New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
Uruchamianie tworzenia kopii zapasowej na żądanie
Aby wyzwolić kopię zapasową na żądanie, uruchom następujące polecenia cmdlet:
Pobierz odpowiednie wystąpienie kopii zapasowej, na którym chcesz wyzwolić kopię zapasową, uruchamiając
Get-AzDataProtectionBackupInstance
polecenie cmdlet .$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Określ regułę przechowywania podczas wyzwalania kopii zapasowej. Aby wyświetlić reguły przechowywania w zasadach, przejdź do obiektu zasad dla reguł przechowywania. W poniższym przykładzie zostanie wyświetlona reguła z nazwą domyślną i użyjemy tej reguły dla kopii zapasowej na żądanie.
$policyDefn.PolicyRule | fl BackupParameter: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams BackupParameterObjectType: AzureBackupParams DataStoreObjectType: DataStoreInfoBase DataStoreType: OperationalStore Name: BackupHourly ObjectType: AzureBackupRule Trigger: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext TriggerObjectType: ScheduleBasedTriggerContext IsDefault: True Lifecycle: {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle} Name: Default ObjectType: AzureRetentionRule
Wyzwalanie kopii zapasowej na żądanie przy użyciu
Backup-AzDataProtectionBackupInstanceAdhoc
polecenia cmdlet .$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Śledzenie zadań
Śledź wszystkie zadania przy użyciu Get-AzDataProtectionJob
polecenia cmdlet . Możesz wyświetlić listę wszystkich zadań i pobrać szczegóły określonego zadania. Możesz również użyć Az.ResourceGraph
polecenia cmdlet , aby śledzić wszystkie zadania we wszystkich magazynach usługi Backup. Użyj polecenia cmdlet , Search-AzDataProtectionJobInAzGraph
aby uzyskać odpowiednie szczegóły zadania z dowolnego magazynu usługi Backup.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService -Operation OnDemandBackup