Udostępnij za pośrednictwem


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.KubernetesConfigurationprogram , Microsoft.DataProtectioni Microsoft.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.

  1. 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
    
  2. 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:

  1. 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:
    
  2. 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.

  3. Jeśli chcesz edytować częstotliwość godzinną lub okres przechowywania, użyj Edit-AzDataProtectionPolicyTriggerClientObject poleceń cmdlet i/lub Edit-AzDataProtectionPolicyRetentionRuleClientObject . Gdy obiekt zasad ma wszystkie wymagane wartości, rozpocznij tworzenie nowych zasad z obiektu zasad przy użyciu New-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:

  1. 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

    1. Konto magazynu i klaster usługi AKS powinny znajdować się w tym samym regionie i subskrypcji.
    2. 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).
    3. 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.
  2. 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

  3. 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:

  1. 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ą jako key-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"
    
  2. 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:

  1. 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"
    
  2. Po przypisaniu uprawnień przetestuj gotowość utworzonego wystąpienia.

    test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 
    
  3. 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:

  1. 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"
    
  2. 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
    
  3. 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

Następne kroki