Share via


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 のインストールに関するページを参照してください。

開始する前に

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 のアクセス許可の設定

サービス プリンシパルを作成する

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

Azure Red Hat OpenShift 4 クラスターへの Velero のインストール

この手順では、Velero をその固有のプロジェクトにインストールし、Velero によってバックアップと復元を実行するために必要なカスタム リソース定義をインストールします。 Azure Red Hat OpenShift v4 クラスターに正常にログインしていることを確認します。

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 クラスター アプリケーションをバックアップしました。 以下の方法を学習しました。

  • Velero を使用して OpenShift v4 クラスター アプリケーションのバックアップを作成する
  • Velero を使用してスナップショットを含む OpenShift v4 クラスター アプリケーションのバックアップを作成する

次の記事に進み、Azure Red Hat OpenShift 4 クラスター アプリケーションの復元を作成する方法を確認してください。