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


Резервное копирование службы Azure Kubernetes с помощью Azure Backup

В этой статье описывается, как настроить и создать резервную копию службы Azure Kubernetes (AKS) с помощью портала Azure. Вы также можете создать резервную копию AKS с помощью Azure PowerShell.

Azure Backup можно использовать для резервного копирования кластеров AKS (ресурсов кластера и постоянных томов, подключенных к кластеру), с помощью расширения резервного копирования, которое должно быть установлено в кластере. Хранилище резервных копий взаимодействует с кластером через расширение резервного копирования для выполнения операций резервного копирования и восстановления.

Предварительные условия

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

  • Currently, AKS Backup supports only Azure Disk Storage-based persistent volumes enabled by CSI driver. Данные резервного копирования могут храниться в виде моментальных снимков в операционном уровне или также можно переместить на уровень хранилища для долгосрочного хранения вместе с моментальными снимками. Хранилище резервных копий и кластер AKS могут находиться в разных подписках в одном клиенте и регионе.

  • Служба архивации AKS использует контейнер «blob» и «группу ресурсов» для хранения резервных копий. Контейнер BLOB содержит ресурсы кластера AKS. Persistent volume snapshots are stored in the resource group. Кластер AKS и расположения хранилища должны находиться в одном регионе. Узнайте, как создать контейнер BLOB.

  • В настоящее время AKS Backup поддерживает однодневные резервные копии. Она также поддерживает более частые резервные копии (в 4-часовом, 8-часовом и 12-часовом интервалах) в день. Оно позволяет хранить данные для восстановления до 360 дней. Узнайте, как создать политику резервного копирования.

  • Необходимо установить расширение резервного копирования для настройки операций резервного копирования и восстановления для кластера AKS. Узнайте больше о расширении резервного копирования.

  • Make sure you have Microsoft.KubernetesConfiguration, Microsoft.DataProtection, and Microsoft.ContainerService registered for your subscription before you initiate backup configuration and restore operations.

  • Прежде чем инициировать операцию резервного копирования или восстановления для AKS Backup, убедитесь, что выполнены все предварительные требования.

Дополнительные сведения о поддерживаемых сценариях, ограничениях и доступности см. в матрице поддержки.

создание резервного хранилища

Хранилище резервных копий — это сущность управления, которая сохраняет точки восстановления, обработанные с течением времени. Хранилище резервных копий также предоставляет интерфейс для выполнения операций резервного копирования. К операциям относятся создание резервных копий по запросу, восстановление и создание политик резервного копирования. Для резервного копирования AKS требуется хранилище резервных копий и кластер AKS, расположенные в одном регионе. However, they can reside in different subscriptions as long as they are within the same tenant. Узнайте , как создать хранилище резервных копий.

Примечание.

Хранилище резервных копий — это новый ресурс, используемый для резервного копирования новых поддерживаемых источников данных. Хранилище резервных копий отличается от хранилища служб восстановления.

Если вы хотите использовать Azure Backup для защиты кластеров AKS от любого регионального сбоя, можно включить восстановление между регионами. Чтобы включить восстановление между регионами, вам нужно:

  1. Set the Backup Storage Redundancy parameter as Geo-Redundant during vault creation. Once the redundancy for a vault is set, you can't disable it.

    Снимок экрана: включение параметра избыточности хранилища резервных копий.

  2. Установите параметр "Восстановление между регионами" в раздел "Свойства хранилища" как включено. После включения этого параметра его нельзя отключить.

    Снимок экрана: включение параметра восстановления между регионами.

  3. Create a Backup Instance using a Backup Policy with retention duration set for Vault-standard datastore. Каждая точка восстановления, хранящаяся в этом хранилище данных, будет находиться во вторичном регионе.

Создание политики резервного копирования

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

Чтобы создать политику резервного копирования, выполните следующее.

  1. Перейдите в созданное хранилище резервного копирования и выберите Управление>политиками резервного копирования>Добавить.

  2. Введите имя политики резервного копирования.

  3. Для типа источника данных выберите Службы Kubernetes.

  4. На вкладке "Расписание и хранение" определите расписание резервного копирования.

    • Частота резервного копирования: выберите частоту резервного копирования (почасовую или ежедневную), а затем выберите длительность хранения резервных копий.
    • Параметр хранения. Новая политика резервного копирования имеет правило по умолчанию, определенное по умолчанию . Это правило можно изменить, но удалить его нельзя. Правило по умолчанию определяет длительность хранения для всех резервных копий операционного уровня. Кроме того, можно создать дополнительные правила хранения для хранения резервных копий в течение длительного времени, которые выполняются ежедневно или еженедельно.

    Снимок экрана: параметры хранения.

    Примечание.

    • Помимо первого успешного резервного копирования дня, можно определить правила хранения для первой успешной резервной копии недели, месяца и года. С точки зрения приоритета порядок — год, месяц, неделя и день.
    • Резервные копии можно скопировать в дополнительный регион (парный регион Azure), хранящийся на уровне хранилища, который можно использовать для восстановления кластеров AKS в дополнительный регион, когда основной регион недоступен. Для использования этой функции используйте геоизбыточное хранилище с включенной функцией кросс-регионального восстановления.
  5. При настройке частоты резервного копирования и параметров хранения нажмите кнопку "Далее".

  6. На вкладке "Рецензирование и создание " просмотрите сведения и нажмите кнопку "Создать".

Установка расширения резервного копирования и настройка резервного копирования

Резервное копирование AKS можно использовать для резервного копирования всего кластера или определенных ресурсов кластера, развернутых в кластере. Вы также можете защитить кластер несколько раз в соответствии с расписанием развернутого приложения и требованиями к хранению или требованиям к безопасности.

Примечание.

Чтобы настроить несколько экземпляров резервного копирования для одного кластера AKS:

  • Настройте резервное копирование в одном хранилище резервных копий, но с помощью другой политики резервного копирования.
  • Настройте резервное копирование в другом хранилище резервных копий.

Установка расширения резервного копирования

Чтобы настроить резервные копии для кластера AKS, выполните приведенные действия.

  1. In the Azure portal, go to the AKS cluster that you want to back up.

  2. В меню службы в разделе "Параметры" выберите "Резервное копирование".

  3. Чтобы подготовить кластер AKS для резервного копирования или восстановления, выберите "Установить расширение ", чтобы установить расширение резервного копирования в кластере.

  4. Provide a storage account and blob container as input.

    Резервные копии кластера AKS хранятся в этом контейнере BLOB. Учетная запись хранения должна находиться в том же регионе и подписке, что и кластер.

    Screenshot that shows how to add storage and blob details for backup.

  5. Выберите Далее. Просмотрите сведения об установке расширения и нажмите кнопку "Создать".

    Начинается установка расширения.

Настроить резервное копирование

  1. Когда расширение резервного копирования установлено успешно, выберите "Настройка резервного копирования".

  2. Выберите хранилище резервных копий, созданное ранее. Хранилище резервных копий должно иметь доверенный доступ для резервного копирования кластера AKS. Чтобы включить доверенный доступ, выберите "Предоставить разрешение". Если он уже включен, нажмите кнопку "Далее".

  3. На вкладке "Политика резервного копирования" выберите политику резервного копирования, которая определяет расписание резервного копирования и их период хранения, а затем нажмите кнопку "Далее".

  4. На вкладке "Источники данных" выберите "Добавить или изменить ", чтобы определить конфигурацию экземпляра резервного копирования.

  5. На панели "Выбор ресурсов для резервного копирования" определите ресурсы кластера, которые требуется создать резервную копию.

    Дополнительные сведения о конфигурациях резервного копирования.

  6. Для группы ресурсов для моментальных снимков выберите группу ресурсов, используемую для хранения моментальных снимков постоянного тома (Azure Disk Storage), а затем выберите Проверить.

    When validation is finished, if required roles aren't assigned to the vault in the snapshot resource group, an error appears:

    Снимок экрана: ошибка проверки, если необходимые разрешения не назначены.

    Чтобы устранить ошибку, в разделе "Имя источника данных" установите флажок для источника данных и выберите " Назначить отсутствующие роли".

  7. После завершения назначения роли нажмите кнопку "Далее>настроить резервную копию".

Конфигурации резервного копирования

Azure Backup для AKS позволяет задать границы приложения в кластере AKS, которые нужно зарезервировать. You can use the filters that are available within backup configurations to choose the resources to back up and also to run custom hooks. The defined backup configuration is referenced by the value for Backup Instance Name. Приведенные ниже фильтры доступны для определения границы приложения:

  1. Select Select Namespaces to backup. Вы можете выбрать "Все ", чтобы создать резервную копию всех существующих и будущих пространств имен в кластере, или выбрать определенные пространства имен для резервного копирования.

    The following namespaces are skipped from Backup configurations: kube-system, kube-node-lease, and kube-public.

    Снимок экрана, показывающий, как выбрать пространства имен для включения в резервную копию.

  2. Разверните дополнительные параметры ресурсов, чтобы просмотреть фильтры, которые можно использовать для выбора ресурсов кластера для резервного копирования. Вы можете создать резервную копию ресурсов на основе следующих категорий:

    • Метки. Ресурсы AKS можно фильтровать с помощью меток , назначенных типам ресурсов. Введите метки в виде пар "ключ-значение". Можно объединить несколько меток с помощью AND логики. Например, если ввести метки env=prod;tier!=web, процесс выбирает ресурсы, имеющие метку с ключом env и значением prod, а также метку с ключом tier, для которой значение не является web.

    • Группы API: Вы также можете включить ресурсы, предоставив группу API AKS и тип. For example, you can choose for backup AKS resources like Deployments. Список определенных групп API Kubernetes можно получить здесь.

    • Другие варианты: Вы можете включить или отключить резервное копирование для кластерных ресурсов, постоянных томов и секретов. Ресурсы, охватывающие весь кластер, и постоянные тома включены по умолчанию.

Примечание.

Необходимо добавить метки в каждый YAML файл, который развёртывается и будет архивироваться. This includes namespace-scoped resources like persistent volume claims, and cluster-scoped resources like persistent volumes.

If you want to exclude specific Persistent Volume Claims from your backups, add the annotation velero.io/exclude-from-backup=true. This Velero annotation is supported by Azure Backup for AKS.

Use hooks during AKS Backup

This section describes how to use a backup hook to create an application-consistent snapshot of the AKS cluster with MySQL deployed (a persistent volume that contains the MySQL instance).

You can use custom hooks in AKS backup to accomplish application-consistent snapshots of volumes. The volumes are used for databases that are deployed as containerized workloads.

By using a backup hook, you can define the commands to freeze and unfreeze a MySQL pod so that an application snapshot of the volume can be taken. The Backup extension then orchestrates the steps of running the commands in the hooks and takes the volume snapshot.

An application-consistent snapshot of a volume with MySQL deployed is taken by doing the following actions:

  1. Модуль pod под управлением MySQL заморожен, чтобы новая транзакция не выполнялась в базе данных.
  2. A snapshot is taken of the volume as backup.
  3. Модуль с MySQL разморожен, чтобы транзакции снова могли выполняться в базе данных.

To enable a backup hook as part of the backup configuration flow to back up MySQL:

  1. Write the custom resource for backup hook with commands to freeze and unfreeze a PostgreSQL pod.

    Вы также можете использовать следующий пример скрипта YAML postgresbackuphook.yaml, который имеет предопределенные команды:

    apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1
    kind: BackupHook
    metadata:
    # BackupHook CR Name and Namespace
    name: bkphookname0
    namespace: default
    spec:
    # BackupHook Name. This is the name of the hook that will be executed during backup.
    # compulsory
    name: hook1
    # Namespaces where this hook will be executed.
    includedNamespaces: 
    - hrweb
    excludedNamespaces:
    labelSelector:
    # PreHooks is a list of BackupResourceHooks to execute prior to backing up an item.
    preHooks:
       - exec:
          command:
          - /sbin/fsfreeze
          - --freeze
          - /var/lib/postgresql/data
          container: webcontainer
          onError: Continue
    # PostHooks is a list of BackupResourceHooks to execute after backing up an item.
    postHooks:
       - exec:
          container: webcontainer
          command:
             - /sbin/fsfreeze
             - --unfreeze
          onError: Fail
          timeout: 10s
    
    
    
  2. Before you configure a backup, you must deploy the backup hook custom resource in the AKS cluster.

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

    kubectl apply -f mysqlbackuphook.yaml
    
    
  3. По завершении развертывания можно настроить резервные копии для кластера AKS.

    Примечание.

    В рамках конфигурации резервного копирования необходимо указать имя настраиваемого ресурса и пространство имен, в которое развернут ресурс в качестве входных данных.

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