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

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

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

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

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

  • Служба архивации AKS поддерживает постоянные тома, основанные на дисках Azure Disk и файлах Azure SMB, активируемых драйвером CSI. Данные резервного копирования, включая моментальные снимки томов на основе дисков Azure и файлов, можно хранить в качестве моментальных снимков на Операционном уровне, а моментальные снимки томов на основе дисков Azure можно перемещать на Сейф-уровень для долгосрочного хранения. Хранилище резервных копий и кластер AKS могут находиться в разных подписках в одном клиенте и регионе.

    • Для томов на основе Azure Files требуется драйвер CSI версии 1.32 или более поздней.
    • Тома файлов Azure с конечными точками частной сети не поддерживаются; поддерживаются только общие папки с общедоступными конечными точками.
    • Поддерживаются только общие папки с 25 000 файлами или меньше.
    • Файлы Azure с использованием протокола NFS не поддерживаются; поддерживается только протокол SMB.
  • Служба архивации AKS использует контейнер «blob» и «группу ресурсов» для хранения резервных копий. Контейнер BLOB содержит ресурсы кластера AKS. Моментальные снимки постоянного тома хранятся в группе ресурсов для томов на базе дисков Azure. Для томов на основе Azure Files моментальные снимки хранятся вместе с файловой долей в той же учетной записи хранения данных. Кластер AKS и расположения хранилища должны находиться в одном регионе. Узнайте, как создать контейнер BLOB.

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

  • Для томов на основе Azure Files рекомендуется создавать постоянные тома с политикой возврата, установленной на Сохранить, чтобы обеспечить доступность моментальных снимков даже при удалении Объёма постоянного хранения (PVC). Политику восстановления можно задать с помощью: kubectl patch pv <your-pv-name> --patch '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'

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

  • Прежде чем инициировать операции резервного копирования и восстановления, убедитесь, что у вас Microsoft.KubernetesConfiguration, Microsoft.DataProtection и Microsoft.ContainerService зарегистрированы для вашей подписки.

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Это важно

    Для томов на основе файлов Azure хранение резервных копий ограничено до 30 дней. Резервное копирование уровня хранилища не поддерживается для томов файлов Azure. Если необходимо создать резервную копию томов диска Azure и Файлов Azure с различными целевыми объектами резервного копирования (Хранилище и моментальный снимок), создайте отдельные экземпляры резервного копирования — по одному для каждого типа ресурса. Снимок экрана: параметры хранения.

    Примечание.

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

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

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

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

Примечание.

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

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

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

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

  1. На портале Azure перейдите в кластер AKS, который вы хотите резервно копировать.

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

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

  4. Укажите учетную запись хранения и контейнер Blob для ввода.

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

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

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

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

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

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

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

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

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

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

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

  6. Для группы ресурсов моментальных снимков выберите группу ресурсов, используемую для хранения моментальных снимков дисков Azure, а затем нажмите кнопку "Проверить". Эта группа ресурсов необходима, даже если вы создаете резервную копию томов файлов Azure (моментальные снимки файлов Azure хранятся вместе с общей папкой в учетной записи хранения).

    После завершения валидации, если необходимые роли не назначены сейфу в группе ресурсов снимков или на учетной записи хранения (для томов файлов Azure), появится ошибка.

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

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

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

    Примечание.

    Для томов на основе Azure Files Сейф резервных копий автоматически назначает кластеру AKS в учетной записи хранения роль Storage File Data Privileged Contributor, предназначенную для динамически подготовленных томов. Для статически подготовленных томов необходимо назначить эту роль вручную.

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

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

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

    Следующие пространства имен пропускаются из конфигураций резервного копирования: kube-system, kube-node-leaseи kube-public.

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

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

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

    • Группы API: Вы также можете включить ресурсы, предоставив группу API AKS и тип. Например, можно выбрать ресурсы AKS для резервного копирования, такие как Deployments. Список определенных групп API Kubernetes можно получить здесь.

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

      • Тип тома: Чтобы создать резервную копию томов, основанных на Azure Files, выберите Azure SMB Fileshares из раскрывающегося списка Тип тома. По умолчанию выбраны только тома дисков Azure.
      • Секреты: Включите параметр Включить секреты, если вы используете секреты Kubernetes для хранения ключей учетных записей для томов Azure Files. Это необходимо для успешных операций восстановления томов на основе файлов Azure.

Примечание.

Необходимо добавить метки в каждый YAML файл, который развёртывается и будет архивироваться. В это входят ограниченные пространством имен ресурсы, такие как запросы на постоянные тома, и ресурсы с областью действия кластера, такие как постоянные тома.

Если вы хотите исключить определенные запросы на постоянный том из резервных копий, добавьте аннотацию velero.io/exclude-from-backup=true. Эта аннотация Velero совместима с Azure Backup для AKS.

Проверка резервных копий и моментальных снимков

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

  1. На портале Azure перейдите в хранилище резервных копий.

  2. Выберите экземпляры резервного копирования в разделе "Управление" , чтобы просмотреть состояние экземпляра резервного копирования кластера AKS.

  3. Выберите задания резервного копирования , чтобы просмотреть завершенные и выполняющиеся операции резервного копирования.

  4. Чтобы проверить моментальные снимки службы Azure Files, выполните следующее:

    • Перейдите в учетную запись хранения, содержащую общую папку файлов Azure.
    • Перейдите к общей папке, используемой постоянным томом.
    • Выберите моментальные снимки, чтобы просмотреть созданные Azure Backup снимки резервных копий.
  5. Чтобы проверить моментальные снимки дисков Azure, выполните следующее:

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

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

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

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

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

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

  1. Модуль pod под управлением MySQL заморожен, чтобы новая транзакция не выполнялась в базе данных.
  2. Произведён моментальный снимок тома для резервного копирования.
  3. Модуль с MySQL разморожен, чтобы транзакции снова могли выполняться в базе данных.

Чтобы включить перехватчик резервного копирования в процессе настройки резервного копирования для MySQL.

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

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

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

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

    Примечание.

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

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