Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как настроить и создать резервную копию Azure Kubernetes Service (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 необходимо выполнить все предварительные условия.
Дополнительные сведения о поддерживаемых сценариях, ограничениях и доступности см. в матрице поддержки.
Создайте хранилище резервных копий для AKS
Хранилище резервных копий — это сущность управления в 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.
Создание политики резервного копирования для кластера 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 в контейнере объектов как резервные копии. Чтобы подготовить кластер AKS к резервному копированию, необходимо установить расширение в кластере. Для этого расширения требуется учетная запись хранения и контейнер BLOB в качестве входных данных.
Чтобы создать новую учетную запись хранения и контейнер объектов BLOB, см. следующие действия.
Примечание.
- Учетная запись хранения и кластер AKS должны находиться в одном регионе и подписке.
- Контейнер BLOB-объектов не должен содержать ранее созданные файловые системы (за исключением резервных копий для AKS).
- Если исходный или целевой кластер AKS находится в частной виртуальной сети, необходимо создать частную конечную точку для подключения учетной записи хранения к кластеру AKS.
Установка расширения резервного копирования
Расширение резервного копирования является обязательным для установки в кластере AKS для выполнения любых операций резервного копирования и восстановления. Расширение резервного копирования создает пространство
dataprotection-microsoftимен в кластере и использует его для развертывания своих ресурсов. Для установки расширения требуются учетная запись хранения и контейнер BLOB. Узнайте о командах установки расширения.В процессе установки расширения в группе ресурсов пула узлов кластера AKS создается учетная запись пользователя. Чтобы расширение получило доступ к учетной записи хранения, необходимо предоставить этой учётной записи роль участника учетной записи хранения. Чтобы назначить требуемую роль, выполните следующую команду.
Включение доверенного доступа
Чтобы хранилище резервных копий было подключено к кластеру AKS, необходимо включить доверенный доступ, так как это позволяет хранилищу резервного копирования иметь прямую линию зрения к кластеру AKS. Узнайте , как включить доверенный доступ.
Примечание.
Для установки расширения резервного копирования и включения доверенного доступа команды доступны только в Azure CLI.
Настройка резервных копий для кластера AKS
С помощью созданного хранилища резервных копий и политики резервного копирования, а также кластера 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. Чтобы настроить резервное копирование кластера 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
Запуск резервного копирования по запросу для кластера AKS
Чтобы активировать резервное копирование по запросу, выполните следующие командлеты:
Получите соответствующий экземпляр резервного копирования, на котором требуется активировать резервную копию, выполнив
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"
Отслеживание заданий резервного копирования AKS
Отслеживайте все задания с помощью командлета Get-AzDataProtectionJob . Можно вывести список всех заданий и получить сведения о конкретном задании. Вы также можете использовать командлет Az.ResourceGraph для отслеживания всех заданий во всех хранилищах резервных копий. Используйте командлет Search-AzDataProtectionJobInAzGraph, чтобы получить соответствующие сведения о задании из любого хранилища резервных копий.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService -Operation OnDemandBackup