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 叢集應用程式還原。