Резервное копирование Служба Azure Kubernetes с помощью PowerShell
В этой статье описывается настройка и резервное копирование Служба Azure Kubernetes (AKS) с помощью Azure PowerShell.
Azure Backup теперь позволяет создавать резервные копии кластеров AKS (ресурсы кластера и постоянные тома, подключенные к кластеру) с помощью расширения резервного копирования, которое должно быть установлено в кластере. Хранилище резервных копий взаимодействует с кластером с помощью этого расширения резервного копирования для выполнения операций резервного копирования и восстановления.
Перед началом работы
Прежде чем приступить к резервному копированию кластера AKS, проверьте следующие предварительные требования:
В настоящее время резервное копирование AKS поддерживает только постоянные тома на основе дисков Azure (включено драйвером CSI). Резервные копии хранятся только в операционном хранилище данных (в клиенте) и не перемещаются в хранилище. Хранилище резервных копий и кластер AKS должны находиться в одном регионе.
Резервное копирование AKS использует контейнер BLOB-объектов и группу ресурсов для хранения резервных копий. Контейнер больших двоичных объектов содержит ресурсы кластера AKS, хранящиеся в нем, а моментальные снимки сохраняемого тома хранятся в группе ресурсов. Кластер AKS и расположения хранилища должны находиться в одном регионе. Узнайте, как создать контейнер больших двоичных объектов.
В настоящее время резервное копирование AKS поддерживает однодневное резервное копирование. Он также поддерживает более частые резервные копии (каждые 4, 8 и 12 часов интервалы) в день. Оно позволяет хранить данные для восстановления до 360 дней. Узнайте, как создать политику резервного копирования.
Чтобы настроить операции резервного копирования и восстановления в кластере AKS, необходимо установить расширение резервного копирования. Дополнительные сведения о расширении резервного копирования.
Microsoft.KubernetesConfiguration
Microsoft.DataProtection
Перед началом операций резервного копирования иMicrosoft.ContainerService
восстановления необходимо зарегистрировать подписку.Перед запуском операции резервного копирования или восстановления для резервного копирования AKS необходимо выполнить все необходимые компоненты.
Дополнительные сведения о поддерживаемых сценариях, ограничениях и доступности см. в матрице поддержки.
создание хранилища Azure Backup;
Хранилище резервных копий — это сущность управления в Azure, в которой хранятся данные резервного копирования для различных новых рабочих нагрузок, поддерживаемых Azure Backup, таких как База данных Azure для PostgreSQL серверы и диски Azure. Хранилища резервных копий упрощают упорядочивание данных резервного копирования при минимизации затрат на управление. Они основаны на модели Azure Resource Manager, которая предоставляет расширенные возможности для защиты данных резервного копирования. Перед созданием хранилища резервных копий выберите избыточность данных в хранилище, а затем создайте хранилище резервных копий с этой избыточностью хранилища и расположением.
Здесь мы создадим хранилище Backup Vault TestBkpVault в регионе "Западная часть США" в группе ресурсов testBkpVaultRG. New-AzDataProtectionBackupVault
Используйте командлет для создания хранилища резервных копий. Дополнительные сведения о создании хранилища Azure Backup.
Примечание.
Хотя выбранное хранилище может иметь глобальный уровень избыточности , резервное копирование для AKS в настоящее время поддерживает только операционный уровень . Все резервные копии хранятся в подписке в том же регионе, что и кластер AKS, и они не копируются в хранилище хранилища резервных копий.
Чтобы определить параметры хранилища хранилища резервных копий, выполните следующий командлет:
Примечание.
Хранилище создается только с поддержкой локальной избыточности и хранилища операционных данных .
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
Чтобы создать хранилище резервных копий в соответствии с указанными ранее сведениями, выполните следующий командлет:
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
После завершения создания хранилища создайте политику резервного копирования для защиты кластеров AKS.
создание политики архивации;
Azure Backup позволяет создавать политики резервного копирования для защиты кластера AKS с ежедневными резервными копиями или несколькими резервными копиями в день.
Чтобы создать политику резервного копирования для кластера AKS, выполните следующие командлеты:
Извлеките шаблон политики с помощью командлета
Get-AzDataProtectionPolicyTemplate
и проверьте внутренние компоненты политики резервного копирования для резервного копирования AKS. Эта команда возвращает шаблон политики по умолчанию для заданного типа источника данных. Используйте этот шаблон политики для создания новой политики.$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
Шаблон политики состоит из условий триггера (которые определяют факторы для запуска задания резервного копирования) и жизненного цикла (который решает, когда следует удалять, копировать или перемещать резервные копии). В резервном копировании AKS значение по умолчанию для триггера — это запланированный почасовой триггер каждые 4 часа (PT4H), а срок хранения каждой резервной копии составляет 7 дней.
$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:
Для частоты ежедневного резервного копирования укажите время дня, когда необходимо выполнить резервное копирование.
Внимание
Указываемое время суток обозначает время запуска резервного копирования, а не время, когда создание резервной копии будет завершено. Время, необходимое для выполнения операции резервного копирования, зависит от различных факторов, включая количество и размер постоянных томов и частоту обработки между последовательными резервными копиями.
Резервное копирование для AKS обеспечивает несколько резервных копий в день. Резервные копии равномерно распределяются по дням, если требуется более частое резервное копирование, выбрав частоту почасового резервного копирования, которая имеет возможность создавать резервные копии с интервалами каждые 4, 6, 8 или 12 часов. Резервные копии запланированы на основе выбранного интервала времени. Например, если выбрать каждые 4 часа, резервные копии выполняются примерно в интервале каждые 4 часа.
Если вы хотите изменить почасовую частоту или период хранения, используйте
Edit-AzDataProtectionPolicyTriggerClientObject
командлеты и(или)Edit-AzDataProtectionPolicyRetentionRuleClientObject
После того как объект политики имеет все необходимые значения, начните создавать новую политику из объекта политики с помощью командлетаNew-AzDataProtectionBackupPolicy
.New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
Подготовка кластера AKS к резервному копированию
После завершения создания хранилища и политики необходимо выполнить следующие предварительные требования для подготовки кластера AKS к резервному копированию:
Создание учетной записи хранения и контейнера BLOB-объектов
Резервное копирование для AKS сохраняет ресурсы Kubernetes в контейнере BLOB-объектов в качестве резервных копий. Чтобы подготовить кластер AKS к резервному копированию, необходимо установить расширение в кластере. Для этого расширения требуется учетная запись хранения и контейнер БОЛЬШИХ двоичных объектов в качестве входных данных.
Чтобы создать новую учетную запись хранения и контейнер BLOB-объектов, см . следующие действия.
Примечание.
- Учетная запись хранения и кластер AKS должны находиться в одном регионе и подписке.
- Контейнер BLOB-объектов не должен содержать ранее созданные файловые системы (за исключением резервных копий для AKS).
- Если исходный или целевой кластер AKS находится в частной виртуальной сети, необходимо создать частную конечную точку для подключения учетной записи хранения к кластеру AKS.
Установка расширения резервного копирования
Расширение резервного копирования является обязательным для установки в кластере AKS для выполнения любых операций резервного копирования и восстановления. Расширение резервного копирования создает пространство
dataprotection-microsoft
имен в кластере и использует то же самое для развертывания своих ресурсов. Для установки расширение требуется учетная запись хранения и контейнер BLOB-объектов. Узнайте о командах установки расширения.В рамках установки расширения удостоверение пользователя создается в группе ресурсов пула узлов кластера AKS. Для доступа к учетной записи хранения необходимо указать эту роль участника учетной записи хранения. Чтобы назначить требуемую роль, выполните следующую команду.
Включение доверенного доступа
Чтобы хранилище резервных копий было подключено к кластеру AKS, необходимо включить доверенный доступ, так как это позволяет хранилищу резервного копирования иметь прямую линию зрения к кластеру AKS. Узнайте , как включить доверенный доступ.
Примечание.
Для установки расширения резервного копирования и включения доверенного доступа команды доступны только в Azure CLI.
Настройка резервного копирования.
С помощью созданной политики резервного копирования и резервного копирования и кластера AKS в состоянии готовности к резервному копированию теперь можно начать резервное копирование кластера AKS.
Основные сущности
Кластер AKS для защиты
Получите идентификатор Azure Resource Manager для защиты кластера AKS. Это служит идентификатором кластера. В этом примере мы используем кластер AKS с именем PSTestAKSCluster в группе ресурсов aksrg в другой подписке:
$sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
Группа ресурсов моментальных снимков
Моментальные снимки постоянных томов хранятся в группе ресурсов в подписке. Рекомендуется создать выделенную группу ресурсов в качестве хранилища данных моментальных снимков для использования службой Azure Backup. Выделенная группа ресурсов позволяет ограничить разрешения доступа для группы ресурсов, обеспечивая безопасность и простоту управления данными резервного копирования. Сохраните идентификатор Azure Resource Manager группы ресурсов в месте хранения моментальных снимков сохраняемого тома.
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
Подготовка запроса
Настройка резервного копирования выполняется двумя шагами.
Подготовьте конфигурацию резервного копирования, чтобы определить, какие ресурсы кластера необходимо создать резервную копию с помощью командлета
New-AzDataProtectionBackupConfigurationClientObject
. В следующем примере конфигурация определяется как все ресурсы кластера в текущий момент, а будущие пространства имен будут резервное копирование с меткой какkey-value pair x=y
. Кроме того, резервные копии всех ресурсов в кластере и постоянных томов. Следующие пространства имен пропускаются из конфигурации резервного копирования и не настроены для резервных копий: kube-system, kube-node-lease, kube-public.$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
Подготовьте соответствующий запрос с помощью соответствующего хранилища, политики, кластера AKS, конфигурации резервного копирования и группы ресурсов моментальных снимков с помощью командлета
Initialize-AzDataProtectionBackupInstance
.$backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
Назначение необходимых разрешений и проверка
Чтобы назначить необходимые разрешения и выполнить проверку для защиты кластера AKS, выполните следующие командлеты:
Подготовив запрос, необходимо назначить пользователю необходимые разрешения с помощью управления доступом на основе ролей Azure (Azure RBAC) в хранилище (представлено управляемым системным удостоверением хранилища) и кластером AKS. Это можно выполнить с помощью командлета
Set-AzDataProtectionMSIPermission
. Для доступа к другим ресурсам Azure хранилище Azure Backup использует управляемое удостоверение. Чтобы настроить резервное копирование кластера AKS, управляемому удостоверению хранилища архивации требуется набор разрешений для кластера AKS и групп ресурсов, в которых создаются и управляются моментальные снимки. Кроме того, кластер AKS требует разрешения на группу ресурсов моментальных снимков.Примечание.
Только управляемое удостоверение, назначаемое системой, в настоящее время поддерживается для резервного копирования (как для хранилища резервных копий, так и кластера AKS). Система назначает по одному управляемому удостоверению на ресурс, привязывая их к жизненному циклу этого ресурса. Вы можете предоставить разрешения управляемому удостоверению с помощью Azure RBAC. Управляемое удостоверение — это особый субъект-служба, который можно использовать только с ресурсами Azure. Дополнительные сведения об управляемых удостоверениях.
Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
После назначения разрешений проверьте готовность созданного экземпляра.
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
После успешной проверки отправьте запрос на защиту кластера AKS с помощью командлета
New-AzDataProtectionBackupInstance
.New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
Выполнение резервного копирования по требованию
Чтобы активировать резервное копирование по запросу, выполните следующие командлеты:
Получите соответствующий экземпляр резервного копирования, на котором требуется активировать резервную копию, выполнив
Get-AzDataProtectionBackupInstance
командлет.$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Укажите правило хранения при активации резервной копии. Чтобы просмотреть правила хранения в политике, перейдите к объекту политики для правил хранения. В следующем примере появляется правило с именем по умолчанию , и мы будем использовать это правило для резервного копирования по запросу.
$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
Активируйте резервную копию по запросу с помощью командлета
Backup-AzDataProtectionBackupInstanceAdhoc
.$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Отслеживание заданий
Отслеживайте все задания с помощью командлета Get-AzDataProtectionJob
. Можно вывести список всех заданий и получить сведения о конкретном задании. Вы также можете использовать Az.ResourceGraph
командлет для отслеживания всех заданий во всех хранилищах резервных копий. Search-AzDataProtectionJobInAzGraph
Используйте командлет, чтобы получить соответствующие сведения о задании из любого хранилища резервных копий.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService -Operation OnDemandBackup