Создание резервной копии приложения кластера Azure Red Hat OpenShift 4

В этой статье объясняется, как подготовить среду для создания резервной копии приложения кластера Azure Red Hat OpenShift 4. Вы узнаете, как:

  • настроить необходимые компоненты и установить необходимые инструменты;
  • создать резервную копию приложения кластера Azure Red Hat OpenShift 4.

Если решено установить и использовать CLI локально, то для работы с этим учебником понадобится Azure CLI 2.6.0 или более поздней версии. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Подготовка к работе

Установка Velero

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

Настройка учетной записи хранения Azure и контейнера BLOB-объектов

На этом этапе будет создана группа ресурсов за пределами группы кластерных ресурсов ARO. Эта группа ресурсов позволит сохранять резервные копии, а также восстанавливать приложения в новых кластерах.

AZURE_BACKUP_RESOURCE_GROUP=Velero_Backups
az group create -n $AZURE_BACKUP_RESOURCE_GROUP --location eastus

AZURE_STORAGE_ACCOUNT_ID="velero$(uuidgen | cut -d '-' -f5 | tr '[A-Z]' '[a-z]')"
az storage account create \
    --name $AZURE_STORAGE_ACCOUNT_ID \
    --resource-group $AZURE_BACKUP_RESOURCE_GROUP \
    --sku Standard_GRS \
    --encryption-services blob \
    --https-only true \
    --kind BlobStorage \
    --access-tier Hot

BLOB_CONTAINER=velero
az storage container create -n $BLOB_CONTAINER --public-access off --account-name $AZURE_STORAGE_ACCOUNT_ID

Задание разрешений для Velero

Практическое руководство. Создание приложения Azure Active Directory и субъекта-службы с доступом к ресурсам с помощью портала

Velero требуются разрешения на создание резервной копии и восстановление. При создании субъекта-службы вы предоставляете Velero разрешение на доступ к группе ресурсов, определенной на предыдущем шаге. На этом шаге будет получена группа кластерных ресурсов:

export AZURE_RESOURCE_GROUP=$(az aro show --name <name of cluster> --resource-group <name of resource group> | jq -r .clusterProfile.resourceGroupId | cut -d '/' -f 5,5)
AZURE_SUBSCRIPTION_ID=$(az account list --query '[?isDefault].id' -o tsv)

AZURE_TENANT_ID=$(az account list --query '[?isDefault].tenantId' -o tsv)
AZURE_CLIENT_SECRET=$(az ad sp create-for-rbac --name "velero" --role "Contributor" --query 'password' -o tsv \
--scopes  /subscriptions/$AZURE_SUBSCRIPTION_ID)
AZURE_CLIENT_ID=$(az ad sp list --display-name "velero" --query '[0].appId' -o tsv)

cat << EOF  > ./credentials-velero.yaml
AZURE_SUBSCRIPTION_ID=${AZURE_SUBSCRIPTION_ID}
AZURE_TENANT_ID=${AZURE_TENANT_ID}
AZURE_CLIENT_ID=${AZURE_CLIENT_ID}
AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET}
AZURE_RESOURCE_GROUP=${AZURE_RESOURCE_GROUP}
AZURE_CLOUD_NAME=AzurePublicCloud
EOF

Установка Velero в кластере Azure Red Hat OpenShift 4

На этом шаге мы установим Velero в собственный проект и пользовательские определения ресурсов, необходимые для резервного копирования и восстановления с помощью Velero. Убедитесь, что вы успешно вошли в кластер Azure Red Hat OpenShift версии 4.

velero install \
--provider azure \
--plugins velero/velero-plugin-for-microsoft-azure:v1.1.0 \
--bucket $BLOB_CONTAINER \
--secret-file ~/path/to/credentials-velero.yaml \
--backup-location-config resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,storageAccount=$AZURE_STORAGE_ACCOUNT_ID \
--snapshot-location-config apiTimeout=15m \
--velero-pod-cpu-limit="0" --velero-pod-mem-limit="0" \
--velero-pod-mem-request="0" --velero-pod-cpu-request="0"

Создание резервной копии с помощью Velero

Чтобы создать резервную копию приложения с помощью Velero, необходимо включить пространство имен, в котором находится это приложение. Если у вас есть пространство имен nginx-example и вы хотите включить в резервную копию все ресурсы в этом пространстве имен, выполните в терминале следующую команду:

velero create backup <name of backup> --include-namespaces=nginx-example

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

oc get backups -n velero <name of backup> -o yaml

При успешном создании резервной копии будет выведен результат phase:Completed, и объекты будут помещены в контейнер в учетной записи хранения.

Создание резервной копии с помощью Velero для включения моментальных снимков

Чтобы создать резервную копию приложения с помощью Velero, чтобы включить постоянные тома приложения, необходимо включить пространство имен, в которое находится приложение, и включить snapshot-volumes=true флаг при создании резервной копии.

velero backup create <name of backup> --include-namespaces=nginx-example --snapshot-volumes=true --include-cluster-resources=true

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

oc get backups -n velero <name of backup> -o yaml

При успешном создании резервной копии будет выведен результат phase:Completed, и объекты будут помещены в контейнер в учетной записи хранения.

Дополнительные сведения см. в статье "Резервное копирование ресурсов OpenShift" на собственном языке

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

При работе с этой статьей вы создали резервную копию приложения кластера Azure Red Hat OpenShift 4. Вы научились выполнять следующие задачи:

  • Создание резервной копии приложения кластера OpenShift версии 4 с помощью Velero.
  • Создание резервной копии приложения кластера OpenShift версии 4 с моментальными снимками с помощью Velero.

Перейдите к следующей статье, чтобы узнать, как создать восстановление приложения кластера Azure Red Hat OpenShift 4.