Поделиться через


Краткое руководство: Настройка резервного копирования в хранилище для кластера Azure Kubernetes Service (AKS) с помощью Azure CLI

В этом кратком руководстве описывается настройка защищённого резервного копирования для кластера Azure Kubernetes Services (AKS) с помощью Azure CLI.

Azure Backup для AKS — это облачная, корпоративная, ориентированная на приложение служба резервного копирования, которая позволяет быстро настроить резервное копирование для кластеров AKS.

Перед началом работы

Перед настройкой хранилища резервного копирования для кластера AKS убедитесь, что выполнены следующие предварительные требования:

Создать резервное хранилище

Чтобы создать хранилище резервных копий, выполните следующую команду:

az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="GeoRedundant"

Только что созданное хранилище имеет параметры хранилища, заданные как глобально избыточные, поэтому резервные копии, хранящиеся на уровне хранилища, будут доступны в парном регионе Azure. После завершения создания хранилища данных создайте политику резервного копирования и восстановления для защиты кластеров AKS.

создание политики архивации;

Получите шаблон политики с помощью команды az dataprotection backup-policy get-default-policy-template.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureKubernetesService > akspolicy.json

Мы обновляем шаблон по умолчанию для политики резервного копирования и добавляем правило хранения, чтобы сохранить первую успешную резервную копию в день на уровне хранилища в течение 30 дней.


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 -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy akspolicy.json

Подготовка кластера AKS к резервному копированию

После завершения создания хранилища и политики необходимо выполнить следующие предварительные требования для подготовки кластера AKS к резервному копированию:

  1. Создайте учетную запись хранения и контейнер 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
    
  2. Установите расширение резервного копирования.

    Расширение резервного копирования является обязательным для установки в кластере 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 создается идентификатор пользователя. Для того чтобы расширение имело доступ к учетной записи хранения, вы должны предоставить этому удостоверению роль участника данных 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
    
  3. Включение доверенного доступа

    Чтобы хранилище резервных копий было подключено к кластеру 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 находится в состоянии готовности к резервному копированию, вы можете теперь приступить к резервному копированию кластера AKS.

Подготовка запроса

Настройка резервного копирования выполняется двумя шагами.

  1. Подготовьте конфигурацию резервного копирования, чтобы определить, какие ресурсы кластера необходимо создать резервную копию с помощью az dataprotection backup-instance initialize-backupconfig команды. Команда создает JSON, который можно обновить, чтобы определить конфигурацию резервного копирования для кластера AKS по мере необходимости.

    az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json
    
  2. Подготовьте соответствующий запрос при помощи соответствующего хранилища, политики, кластера 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.

Назначение необходимых разрешений и проверка

При подготовке запроса сначала необходимо проверить, назначены ли необходимые роли ресурсам, задействованным в этом процессе, с помощью выполнения следующей команды:

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

После назначения разрешений повторите проверку с помощью предыдущей проверки для команды резервного копирования, а затем перейдите к настройке резервного копирования :

az dataprotection backup-instance create --backup-instance  backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault

Следующие шаги