Freigeben über


Sichern von Azure Kubernetes Service mithilfe von PowerShell

In diesem Artikel erfahren Sie, wie Sie Azure Kubernetes Service (AKS) mit Azure PowerShell konfigurieren und sichern.

Mit Azure Backup können Sie jetzt AKS-Cluster (Clusterressourcen und an den Cluster angefügte persistente Volumes) mithilfe einer Sicherungserweiterung sichern. Diese Erweiterung muss im Cluster installiert werden. Der Backup-Tresor kommuniziert mit dem Cluster über diese Sicherungserweiterung, um Sicherungs- und Wiederherstellungsvorgänge durchzuführen.

Vor der Installation

Bevor Sie mit der Sicherung eines AKS-Clusters beginnen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen überprüfen:

  • Derzeit unterstützt die AKS-Sicherung nur Azure Disk-basierte persistente Volumes (aktiviert durch den CSI-Treiber). Die Sicherungen werden nur im operativen Datenspeicher (in Ihrem Mandanten) gespeichert und nicht in einen Tresor verschoben. Der Sicherungstresor und der AKS-Cluster sollten sich in derselben Region befinden.

  • Die AKS-Sicherung verwendet einen Blobcontainer und eine Ressourcengruppe, um die Sicherungen zu speichern. Im Blobcontainer sind die AKS-Clusterressourcen gespeichert, während die Momentaufnahmen des persistenten Volumes in der Ressourcengruppe gespeichert werden. Der AKS-Cluster und die Speicherorte müssen sich in derselben Region befinden. Erfahren Sie, wie Sie einen Blobcontainer erstellen.

  • Derzeit unterstützt die AKS-Sicherung das Anlegen von Sicherungen einmal pro Tag. Darüber hinaus werden häufigere Sicherungen (in Intervallen von 4, 8 und 12 Stunden) pro Tag unterstützt. Mit dieser Lösung können Sie Ihre Daten bis zu 360 Tage lang für die Wiederherstellung aufbewahren. Erfahren Sie, wie Sie eine Sicherungsrichtlinie erstellen.

  • Sie müssen die Sicherungserweiterung installieren, um Sicherungs- und Wiederherstellungsvorgänge in einem AKS-Cluster zu konfigurieren. Erfahren Sie mehr über die Sicherungserweiterung.

  • Stellen Sie sicher, dass Microsoft.KubernetesConfiguration, Microsoft.DataProtection und Microsoft.ContainerService für Ihr Abonnement registriert sind, bevor Sie die Sicherungskonfigurations- und Wiederherstellungsvorgänge initiieren.

  • Stellen Sie sicher, dass Sie alle Voraussetzungen erfüllen, bevor Sie einen Sicherungs- oder Wiederherstellungsvorgang für die AKS-Sicherung initiieren.

Weitere Informationen zu den unterstützten Szenarien sowie zu Einschränkungen und zur Verfügbarkeit finden Sie in der Supportmatrix.

Erstellen eines Sicherungstresors

Ein Sicherungstresor ist eine Verwaltungsentität in Azure, die Sicherungsdaten für verschiedene neuere Workloads speichert, die von Azure Backup unterstützt werden, z. B. Azure Database for PostgreSQL Server und Azure-Datenträger. Backup-Tresore vereinfachen die Organisation Ihrer Sicherungsdaten und minimieren gleichzeitig den Verwaltungsaufwand. Sie basieren auf dem Azure Resource Manager-Modell, das erweiterte Funktionen bietet, die das Schützen von Sicherungsdaten erleichtern. Wählen Sie vor dem Erstellen eines Backup-Tresors die Speicherredundanz der Daten im Tresor aus, und erstellen Sie dann den Sicherungstresor mit dieser Speicherredundanz und dem Speicherort.

Hier wird der Backup-Tresor TestBkpVault in der Region USA, Westen unter der Ressourcengruppe testBkpVaultRG erstellt. Verwenden Sie das Cmdlet New-AzDataProtectionBackupVault, um einen Backup-Tresor zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Sicherungstresors.

Hinweis

Obwohl der ausgewählte Tresor möglicherweise über die Einstellung globale Redundanz verfügt, unterstützt die Sicherung für AKS derzeit nur die betriebsbezogene Ebene. Alle Sicherungen werden in Ihrem Abonnement in derselben Region wie der AKS-Cluster gespeichert und nicht in den Backup-Tresor kopiert.

  1. Führen Sie zum Definieren der Speichereinstellungen des Backup-Tresors das folgende Cmdlet aus:

    Hinweis

    Der Tresor wird nur mit Unterstützung für lokale Redundanz und operativer Datenspeicher erstellt.

    $storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
    
  2. Führen Sie das folgende Cmdlet aus, um den Backup-Tresor gemäß den zuvor erwähnten Details zu erstellen:

    New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
    $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
    

Erstellen Sie nach Abschluss der Tresorerstellung eine Sicherungsrichtlinie zum Schutz von AKS-Clustern.

Erstellen einer Sicherungsrichtlinie

Mit Azure Backup können Sie Sicherungsrichtlinien für den AKS Cluster-Schutz mit Täglichen Sicherungen oder Mehreren Sicherungen pro Tag erstellen.

Führen Sie die folgenden Cmdlets aus, um eine Sicherungsrichtlinie für AKS Cluster zu erstellen:

  1. Rufen Sie die Richtlinienvorlage mithilfe des Cmdlets Get-AzDataProtectionPolicyTemplate ab, und überprüfen Sie die inneren Komponenten einer Sicherungsrichtlinie in Hinblick auf die Sicherung von AKS. Dieser Befehl gibt eine Standardrichtlinienvorlage für einen angegebenen DataSource-Typ zurück. Verwenden Sie diese Richtlinienvorlage, um eine neue Richtlinie zu erstellen.

    $policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
    

    Die Richtlinienvorlage besteht aus einem Auslöserkriterium (das die Faktoren zum Auslösen des Sicherungsauftrags bestimmt) und einem Lebenszyklus (der entscheidet, wann die Sicherungen gelöscht, kopiert oder verschoben werden sollen). In der AKS-Sicherung ist der Standardwert für Trigger ein geplanter stündlicher Trigger alle 4 Stunden (PT4H), und die Aufbewahrung jeder Sicherung liegt bei 7 Tagen.

    $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. Geben Sie für die Tägliche Sicherungshäufigkeit die Tageszeit an, zu der Ihre Sicherungen ausgeführt werden sollen.

    Wichtig

    Die Uhrzeit gibt die Startzeit der Sicherung an und nicht die Zeit, zu der die Sicherung abgeschlossen ist. Die für den Abschluss des Sicherungsvorgangs erforderliche Zeit hängt von verschiedenen Faktoren ab, einschließlich der Anzahl und Größe der persistenten Volumes und Churns zwischen aufeinanderfolgenden Sicherungen.

    Die Sicherung für AKS bietet mehrere Sicherungen pro Tag. Die Sicherungen werden gleichmäßig über den Tag verteilt, wenn Sie häufigere Sicherungen benötigen, indem Sie die Häufigkeit der stündlichen Sicherungen auswählen, mit der Sicherungen mit Intervallen von 4, 6, 8 oder 12 Stunden erstellt werden können. Die Sicherungen werden basierend auf dem unter Zeitintervall ausgewählten Intervall geplant. Wenn Sie z. B. Alle 4 Stunden auswählen, werden die Sicherungen im Intervall von ungefähr 4 Stunden durchgeführt.

  3. Wenn Sie die stündliche Häufigkeit oder die Beibehaltungsdauer bearbeiten möchten, verwenden Sie die Cmdlets Edit-AzDataProtectionPolicyTriggerClientObject und/oder Edit-AzDataProtectionPolicyRetentionRuleClientObject. Sobald das Richtlinienobjekt alle gewünschten Werte aufweist, erstellen Sie mit dem Cmdlet New-AzDataProtectionBackupPolicyeine neue Richtlinie aus dem Richtlinienobjekt.

    New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn
    
    $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
    

Vorbereiten des AKS-Clusters für die Sicherung

Nach Abschluss der Tresor- und Richtlinienerstellung müssen Sie die folgenden Voraussetzungen erfüllen, um den AKS-Cluster für die Sicherung vorzubereiten:

  1. Erstellen eines Speicherkontos und eines Blobcontainers

    Sicherung für AKS speichert Kubernetes-Ressourcen in einem Blobcontainer als Sicherungen. Um den AKS-Cluster für die Sicherung vorzubereiten, müssen Sie eine Erweiterung im Cluster installieren. Diese Erweiterung erfordert das Speicherkonto und den Blobcontainer als Eingaben.

    Führen Sie diese Schritte aus, um ein neues Speicherkonto und einen Blobcontainer zu erstellen.

    Hinweis

    1. Das Speicherkonto und der AKS-Cluster sollten sich in derselben Region und in demselben Abonnement befinden.
    2. Der Blobcontainer sollte keine zuvor erstellten Dateisysteme enthalten (außer durch Sicherung für AKS erstellt).
    3. Wenn sich Ihr Quell- oder Ziel-AKS-Cluster in einem privaten virtuellen Netzwerk befindet, müssen Sie einen privaten Endpunkt erstellen, um das Speicherkonto mit dem AKS-Cluster zu verbinden.
  2. Installieren der Backup-Erweiterung

    Die Sicherungserweiterung muss im AKS-Cluster installiert werden, um Sicherungs- und Wiederherstellungsvorgänge auszuführen. Die Sicherungserweiterung erstellt einen Namespace dataprotection-microsoft im Cluster und verwendet denselben, um die Ressourcen bereitzustellen. Diese Erweiterung erfordert das Speicherkonto und den Blobcontainer als Eingaben für die Installation. Erfahren Sie mehr über die Erweiterungsinstallationsbefehle.

    Im Rahmen der Erweiterungsinstallation wird eine Benutzeridentität in der Knotenpool-Ressourcengruppe des AKS-Clusters erstellt. Damit die Erweiterung auf das Speicherkonto zugreifen kann, müssen Sie für diese Identität die Rolle Mitwirkender des Speicherkontos angeben. Um die erforderliche Rolle zuzuweisen, führen Sie diesen Befehl aus.

  3. Aktivieren des vertrauenswürdigen Zugriffs

Damit der Backup-Tresor eine Verbindung mit dem AKS-Cluster herstellen kann, müssen Sie den vertrauenswürdigen Zugriff aktivieren, da der Sicherungstresor so eine direkte Sichtverbindung zum AKS-Cluster hat. Erfahren Sie, wie Sie den vertrauenswürdigen Zugriff aktivieren.

Hinweis

Für die Installation der Sicherungserweiterung und die Aktivierung des vertrauenswürdigen Zugriffs sind die Befehle nur in Azure CLI verfügbar.

Konfigurieren von Sicherungen

Mit dem erstellten Backup-Tresor, der Sicherungsrichtlinie und dem AKS-Cluster, der sich im Status Bereit für die Sicherung befindet, können Sie jetzt mit der Sicherung Ihres AKS-Clusters beginnen.

Schlüsselentitäten

  • Zu schützender AKS Cluster

    Rufen Sie die Azure Resource Manager ID (ARM ID) des zu schützenden AKS-Clusters ab. Sie fungiert als Bezeichner des Clusters. In diesem Beispiel verwenden wir einen AKS-Cluster namens PSTestAKSCluster unter der Ressourcengruppe aksrg in einem anderen Abonnement:

    $sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
    
  • Ressourcengruppe für Momentaufnahme

    Die Momentaufnahmen des persistenten Volumes werden in einer Ressourcengruppe in Ihrem Abonnement gespeichert. Wir empfehlen, eine dedizierte Ressourcengruppe als Momentaufnahmen-Datenspeicher zu erstellen, der vom Azure Backup-Dienst verwendet werden soll. Mit einer dedizierten Ressourcengruppe lassen sich die Zugriffsrechte auf die Ressourcengruppe beschränken, was Sicherheit gewährleistet und eine einfache Verwaltung der Sicherungsdaten ermöglicht. Speichern Sie die Azure Resource Manager-ID der Ressourcengruppe unter dem Speicherort, an dem Sie die Momentaufnahmen des persistenten Volumes speichern möchten.

    $snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
    

Vorbereiten der Anforderung

Die Konfiguration der Sicherung erfolgt in zwei Schritten:

  1. Bereiten Sie die Sicherungskonfiguration vor, um zu definieren, welche Clusterressourcen mithilfe des Cmdlets New-AzDataProtectionBackupConfigurationClientObject gesichert werden sollen. Im folgenden Beispiel wird die Konfiguration als alle Clusterressourcen unter „Aktuell“ definiert, und zukünftige Namespaces werden mit der Bezeichnung key-value pair x=ygesichert. Außerdem werden alle Ressourcen mit Clusterbereich und persistente Volumes gesichert. Die folgenden Namespaces werden bei der Sicherungskonfiguration übersprungen und nicht für Sicherungen konfiguriert: kube-system, kube-node-lease, kube-public.

    $backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
    
  2. Bereiten Sie die relevante Anforderung mithilfe des entsprechenden Tresors, der Richtlinie, des AKS-Clusters, der Sicherungskonfiguration und Momentaufnahme-Ressourcengruppe mit dem Cmdlet Initialize-AzDataProtectionBackupInstance vor.

    $backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService  -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
    

Zuweisen der erforderlichen Berechtigungen und Überprüfen

Führen Sie die folgenden Cmdlets aus, um die erforderlichen Berechtigungen zuzuweisen und die Überprüfung für den AKS-Clusterschutz auszuführen:

  1. Nachdem die Anforderung vorbereitet ist, müssen Sie dem Benutzer die erforderlichen Berechtigungen über die rollenbasierte Zugriffssteuerung in Azure (Azure RBAC) für den Tresor (dargestellt durch die verwaltete Systemidentität des Tresors) und den AKS-Cluster zuweisen. Sie können dies mit dem Cmdlet Set-AzDataProtectionMSIPermission ausführen. Der Sicherungstresor verwendet die verwaltete Identität für den Zugriff auf andere Azure-Ressourcen. Um die Sicherung des AKS-Clusters zu konfigurieren, erfordert die verwaltete Identität das Backup-Tresors eine Reihe von Berechtigungen für den AKS-Cluster und die Ressourcengruppen, auf denen Momentaufnahmen erstellt und verwaltet werden. Außerdem erfordert der AKS-Cluster die Berechtigung für die Momentaufnahme-Ressourcengruppe.

    Hinweis

    Nur die systemseitig zugewiesene verwaltete Identität wird derzeit für Sicherungen unterstützt (sowohl Backup-Tresor als auch AKS-Cluster). Eine systemseitig zugewiesene verwaltete Identität ist auf eine Ressource beschränkt und an den Lebenszyklus dieser Ressource gebunden. Sie können der verwalteten Identität Berechtigungen über Azur RBAC erteilen. Eine verwaltete Identität ist ein spezieller Dienstprinzipal, der nur zusammen mit Azure-Ressourcen verwendet werden kann. Weitere Informationen zu verwalteten Identitäten.

    Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
    
  2. Nachdem Berechtigungen zugewiesen wurden, testen Sie die Bereitschaft der erstellten Instanz.

    test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 
    
  3. Wenn die Überprüfung erfolgreich ist, übermitteln Sie die Anforderung, um den AKS-Cluster mithilfe des Cmdlets New-AzDataProtectionBackupInstance zu schützen.

    New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
    

Ausführen einer On-Demand-Sicherung

Führen Sie die folgenden Cmdlets aus, um eine bedarfsgesteuerte Sicherung auszulösen:

  1. Führen Sie das Cmdlet Get-AzDataProtectionBackupInstance aus, um die relevante Sicherungsinstanz abzurufen, für die Sie eine Sicherung auslösen möchten.

    $instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
    
  2. Geben Sie beim Auslösen der Sicherung eine Aufbewahrungsregel an. Navigieren Sie zum Anzeigen der Aufbewahrungsregeln in der Richtlinie zum Richtlinienobjekt für Aufbewahrungsregeln. Im folgenden Beispiel wird die Regel mit dem Namen Default angezeigt, und wir verwenden diese Regel für die bedarfsgesteuerte Sicherung.

    $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. Lösen Sie nun eine bedarfsgesteuerte Sicherung mit dem Cmdlet Backup-AzDataProtectionBackupInstanceAdhoc aus.

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
    
    Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
    

Aufträge nachverfolgen

Verfolgen Sie alle Aufträge mit dem Cmdlet Get-AzDataProtectionJob. Sie können alle Aufträge auflisten und ein bestimmtes Auftragsdetail abrufen. Sie können das Cmdlet Az.ResourceGraph auch verwenden, um alle Aufträge über alle Backup-Tresore hinweg zu verfolgen. Verwenden Sie das Cmdlet Search-AzDataProtectionJobInAzGraph, um die relevanten Auftragsdetails aus einem beliebigen Backup-Tresor abzurufen.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService  -Operation OnDemandBackup

Nächste Schritte