Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как настраивать и выполнять резервное копирование службы Azure Kubernetes (AKS) с использованием Azure CLI. Вы также можете создать резервную копию AKS с помощью Azure PowerShell.
Azure Backup теперь позволяет создавать резервные копии кластеров AKS (ресурсы кластера и постоянные тома, подключенные к кластеру) с помощью расширения резервного копирования, которое должно быть установлено в кластере. Хранилище резервных копий взаимодействует с кластером с помощью этого расширения резервного копирования для выполнения операций резервного копирования и восстановления.
Перед началом работы
В настоящее время резервное копирование AKS поддерживает только постоянные тома на основе дисков Azure, при этом поддержка обеспечивается драйвером CSI. Резервные копии хранятся только в операционной базе данных (в вашем арендаторе) и не перемещаются в другое хранилище. Хранилище резервных копий и кластер AKS должны находиться в одном регионе.
Резервное копирование AKS использует BLOB-контейнер и группу ресурсов для хранения резервных копий. Контейнер больших двоичных объектов содержит ресурсы кластера AKS, хранящиеся в нем, а моментальные снимки сохраняемого тома хранятся в группе ресурсов. Кластер AKS и расположения хранилища должны находиться в одном регионе. Узнайте, как создать контейнер BLOB.
В настоящее время резервное копирование AKS поддерживает однодневное резервное копирование. Он также поддерживает более частые резервные копии (каждые 4, 8 и 12 часов интервалы) в день. Оно позволяет хранить данные для восстановления до 360 дней. Узнайте, как создать политику резервного копирования.
Чтобы настроить операции резервного копирования и восстановления в кластере AKS, необходимо установить расширение резервного копирования. Узнайте больше о расширении для резервного копирования.
Убедитесь, что
Microsoft.KubernetesConfiguration,Microsoft.DataProtectionиMicrosoft.ContainerServiceзарегистрированы для вашей подписки перед началом настройки резервного копирования и операции восстановления.Перед запуском операции резервного копирования или восстановления для резервной копии AKS необходимо выполнить все предварительные условия.
Дополнительные сведения о поддерживаемых сценариях, ограничениях и доступности см. в матрице поддержки.
создание хранилища для резервных копий
Хранилище резервных копий — это сущность управления в Azure, в которой хранятся данные резервного копирования для различных новых рабочих нагрузок, поддерживаемых Azure Backup, таких как База данных Azure для PostgreSQL серверы и диски Azure. Хранилища резервных копий упрощают организацию данных резервного копирования, одновременно снижая накладные затраты на управление. Хранилища резервных копий основаны на модели Azure Resource Manager в экосистеме Azure, которая предоставляет расширенные возможности для защиты данных резервных копий.
Перед созданием хранилища резервных копий выберите избыточность данных в хранилище, а затем создайте хранилище резервных копий с этой избыточностью хранилища и расположением. Дополнительные сведения о создании хранилища Azure Backup.
Примечание.
Хотя выбранное хранилище может быть настроено на глобальный уровень отказоустойчивости, резервное копирование для AKS в настоящее время поддерживает только Операционный уровень. Все резервные копии хранятся в подписке в том же регионе, что и кластер AKS, и они не копируются в хранилище резервных копий.
Чтобы создать хранилище резервных копий, выполните следующую команду:
az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
После того как хранилище будет создано, создайте политику резервного копирования для защиты кластеров AKS.
создание политики архивации;
Чтобы понять внутренние компоненты политики для резервного копирования AKS, получите шаблон политики с помощью команды az dataprotection backup-policy get-default-policy-template. Эта команда возвращает шаблон политики по умолчанию для заданного типа источника данных. Используйте этот шаблон политики для создания новой политики.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureKubernetesService > akspolicy.json
{
"datasourceTypes": [
"Microsoft.ContainerService/managedClusters"
],
"name": "AKSPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2023-01-04T09:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
Шаблон политики состоит из условий триггера (которые определяют факторы для запуска задания резервного копирования) и жизненного цикла (который решает, когда следует удалять, копировать или перемещать резервные копии). В резервном копировании AKS значение по умолчанию для триггера — это запланированный почасовой триггер каждые 4 часа (PT4H), а срок хранения каждой резервной копии составляет семь дней.
Scheduled trigger:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2023-01-04T09:00:00+00:00/PT4H"
]
}
}
Default retention lifecycle:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
Резервное копирование для AKS обеспечивает несколько резервных копий в день. Если требуется более частое резервное копирование, выберите частоту почасового резервного копирования, которая имеет возможность выполнять резервные копии с интервалами каждые 4, 6, 8 или 12 часов. Резервные копии запланированы на основе выбранного интервала времени.
Внимание
Указываемое время суток обозначает время запуска резервного копирования, а не время, когда создание резервной копии будет завершено.
Расписание резервного копирования соответствует формату длительности ISO 8601. Однако префикс R повторяющегося интервала не поддерживается, так как резервные копии настроены на неограниченное время. Любое значение, указанное с параметром R , будет игнорироваться.
После скачивания шаблона в виде JSON-файла его можно изменить для планирования и хранения по мере необходимости. Затем создайте новую политику с этим JSON-файлом. Если вы хотите изменить почасовую частоту или период хранения, используйте az dataprotection backup-policy trigger set команды или az dataprotection backup-policy retention-rule set команды.
Примечание.
Чтобы сохранить данные резервного копирования на уровне хранилища для долгосрочного хранения для обеспечения соответствия требованиям или для регионального аварийного восстановления через восстановление между регионами, необходимо определить новое правило хранения в шаблоне по умолчанию, определяющее, сколько времени резервное копирование должно храниться в хранилище.
Давайте рассмотрим пример, в котором мы обновим шаблон по умолчанию для политики резервного копирования и добавим правило хранения, чтобы сохранить первую успешную резервную копию в день на уровне хранилища в течение 30 дней.
Используйте команду az dataprotection backup-policy retention-rule create-lifecycle для создания правила хранения, а затем добавьте правило хранения в шаблон политики резервного копирования с помощью команды ''
az dataprotection backup-policy retention-rule create-lifecycle --count 30 --retention-duration-type Days --copy-option ImmediateCopyOption --target-datastore VaultStore --source-datastore OperationalStore > ./retentionrule.json
az dataprotection backup-policy retention-rule set --lifecycles ./retentionrule.json --name Daily --policy ./akspolicy.json > ./akspolicy.json
После того как json политики содержит все необходимые значения, перейдите к созданию новой политики из объекта политики с помощью az dataprotection backup-policy create команды.
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
Подготовка кластера AKS к резервному копированию
После завершения создания хранилища и политики необходимо выполнить следующие предварительные требования для подготовки кластера AKS к резервному копированию:
Создайте учетную запись для хранения и контейнер для BLOB-объектов.
Резервное копирование для AKS сохраняет ресурсы Kubernetes в контейнере BLOB в виде резервных копий. Чтобы подготовить кластер AKS к резервному копированию, необходимо установить расширение в кластере. Для этого расширения требуется учетная запись хранения и контейнер блобов в качестве входных данных.
Чтобы создать новую учетную запись хранения, выполните следующую команду:
az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --location $region --sku Standard_LRSПосле того как создание учетной записи хранения будет завершено, создайте контейнер BLOB, выполнив следующую команду:
az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode loginПримечание.
- Учетная запись хранения и кластер AKS должны быть в одном и том же регионе и подписке.
- Контейнер BLOB-объектов не должен содержать ранее созданные файловые системы (за исключением тех, которые созданы резервными копиями для AKS).
- Если исходный или целевой кластер AKS находится в частной виртуальной сети, необходимо создать частную конечную точку для подключения учетной записи хранения к кластеру AKS.
Установите расширение резервного копирования.
Расширение резервного копирования является обязательным для установки в кластере AKS для выполнения любых операций резервного копирования и восстановления. Расширение резервного копирования создает пространство
dataprotection-microsoftимен в кластере и использует его для развертывания своих ресурсов. Для установки расширения требуются учетная запись хранения и контейнер BLOB-объектов в качестве входных данных.az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name $akscluster --resource-group $aksclusterresourcegroup --release-train stable --configuration-settings blobContainer=$blobcontainer storageAccount=$storageaccount storageAccountResourceGroup=$storageaccountresourcegroup storageAccountSubscriptionId=$subscriptionId
Если кластер AKS находится в виртуальной сети, необходимо создать частную конечную точку, подключив учетную запись хранения к виртуальной сети, в которой находится кластер AKS.
#Fetch the Subnet ID using the name of the virtual network and subnet in which cluster resides
$PESubnetId = az network vnet subnet show --resource-group $aksMCResourceGroup --vnet-name $aksVnetName --name $PESubnetName --query 'id' --output tsv
#Create a Private Endpoint between Storage Account and the Virtual Network.
az network private-endpoint create `
--resource-group $aksclusterresourcegroup `
--name $StoragePrivateEndpoint `
--vnet-name $aksVnetName `
--subnet $PESubnetId `
--private-connection-resource-id $(az storage account show --nameD $storageaccount --resource-group $storageaccountresourcegroup --query "id" --output tsv) `
--group-ids "blob" `
--connection-name "StoragePESharedVNetConnection"
В рамках установки расширения идентификатор пользователя создается в группе ресурсов узлового пула кластера AKS. Для того чтобы расширение получило доступ к учетной записи хранения, необходимо предоставить этой идентификации роль участника данных хранилища BLOB. Чтобы назначить требуемую роль, выполните следующую команду:
az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $akscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccount
Включение доверенного доступа
Чтобы хранилище резервных копий было подключено к кластеру AKS, необходимо включить доверенный доступ , так как это позволяет хранилищу резервного копирования иметь прямую линию зрения к кластеру AKS.
Чтобы включить доверенный доступ, выполните следующую команду:
az aks trustedaccess rolebinding create --cluster-name $akscluster --name backuprolebinding --resource-group $aksclusterresourcegroup --roles Microsoft.DataProtection/backupVaults/backup-operator --source-resource-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/BackupVaults/$backupvault
Настройка резервного копирования.
Теперь, с созданным хранилищем резервных копий и политикой резервного копирования, и при том, что кластер AKS находится в состоянии готовности к резервному копированию, можно начать процесс резервного копирования кластера AKS.
Подготовка запроса
Настройка резервного копирования выполняется двумя шагами.
Подготовьте конфигурацию резервного копирования, чтобы определить, какие ресурсы кластера необходимо создать резервную копию с помощью
az dataprotection backup-instance initialize-backupconfigкоманды. Команда создает JSON, который можно обновить, чтобы определить конфигурацию резервного копирования для кластера AKS по мере необходимости.az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json { "excluded_namespaces": null, "excluded_resource_types": null, "include_cluster_scope_resources": true, "included_namespaces": null, "included_resource_types": null, "label_selectors": null, "snapshot_volumes": true }
Следующие пространства имен исключены из конфигурации резервного копирования и не настроены для резервирования: kube-system, kube-node-lease, kube-public.
Подготовьте соответствующий запрос с помощью соответствующего хранилища, политики, кластера AKS, конфигурации резервного копирования и группы ресурсов моментальных снимков с помощью
az dataprotection backup-instance initializeкоманды.az dataprotection backup-instance initialize --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --datasource-location $region --datasource-type AzureKubernetesService --policy-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupPolicies/$backuppolicy --backup-configuration ./aksbackupconfig.json --friendly-name ecommercebackup --snapshot-resource-group-name $snapshotresourcegroup > backupinstance.json
Теперь используйте выходные данные JSON этой команды для настройки резервного копирования для кластера AKS.
Назначение необходимых разрешений и проверка
Для доступа к другим ресурсам Azure хранилище резервных копий использует управляемое удостоверение. Чтобы настроить резервное копирование кластера AKS, управляемому удостоверению архивационного хранилища требуется набор разрешений на кластер AKS и на группы ресурсов, в которых создаются и управляются моментальные снимки. Кроме того, для кластера AKS требуется разрешение на группу ресурсов для моментальных снимков.
Только управляемое удостоверение, назначаемое системой, в настоящее время поддерживается для резервного копирования (как для хранилища резервных копий, так и кластера AKS). Система назначает одно управляемое удостоверение на ресурс, привязанное к жизненному циклу этого ресурса. Управляемой идентификации можно предоставить разрешения, используя управление доступом на основе ролей Azure (Azure RBAC). Управляемое удостоверение — это особый объект-служба, который можно использовать только с ресурсами Azure. Дополнительные сведения об управляемых удостоверениях.
При подготовке запроса сначала необходимо проверить, назначены ли необходимые роли ресурсам, упомянутым выше, выполнив следующую команду:
az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault
Если проверка завершается ошибкой и отсутствуют определенные разрешения, их можно назначить, выполнив следующую команду:
az dataprotection backup-instance update-msi-permissions command.
az dataprotection backup-instance update-msi-permissions --datasource-type AzureKubernetesService --operation Backup --permissions-scope ResourceGroup --vault-name $backupvault --resource-group $backupvaultresourcegroup --backup-instance backupinstance.json
После назначения разрешений выполните повторную проверку с помощью следующей команды validate for backup:
az dataprotection backup-instance create --backup-instance backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault
Выполнение резервного копирования по требованию
Чтобы получить соответствующий экземпляр резервного копирования, в котором требуется активировать резервную копию, выполните az dataprotection backup-instance list-from-resourcegraph -- команду.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --query aksAssignedIdentity.id
Теперь активируйте резервное копирование по требованию для резервного экземпляра, выполнив следующую команду:
az dataprotection backup-instance adhoc-backup --rule-name "BackupDaily" --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid
Отслеживание заданий
Отслеживайте выполнение заданий резервного копирования с помощью команды az dataprotection job. Можно вывести список всех заданий и получить сведения о конкретном задании.
Вы также можете использовать Resource Graph для отслеживания всех заданий во всех подписках, группах ресурсов и хранилищах резервных копий, выполнив az dataprotection job list-from-resourcegraph команду, чтобы получить соответствующее задание.
Для резервного копирования по запросу:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation OnDemandBackup
Для запланированного резервного копирования:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation ScheduledBackup
Следующие шаги
- Восстановление кластера службы Azure Kubernetes с помощью Azure CLI, Azure PowerShell
- Управление резервными копиями кластера Служба Azure Kubernetes
- Сведения о резервном копировании кластера Службы Kubernetes в Azure