Számítási feladatok fürtök biztonsági mentésének és visszaállításának a Velero és az Azure Blob Storage használatával

Ez a témakör az AKS biztonsági mentését és visszaállítását ismerteti Azure Stack HCI számítási feladatfürtökön a Velero és az Azure Blob tárolóként való használatával. A Velero egy nyílt forráskódú közösségi szabványeszköz Kubernetes-fürtobjektumok és állandó kötetek biztonsági mentéséhez és visszaállításához, és számos társzolgáltatót támogat a biztonsági másolatok tárolásához.

Ha egy számítási feladat fürtje összeomlik és nem áll helyre, a Velero biztonsági mentésével visszaállíthatja annak tartalmát és belső API-objektumát egy új fürtre.

A Velero üzembe helyezése és konfigurálása

A Velero üzembe helyezéséhez és konfiguráláshoz kövesse az alábbi lépéseket:

  1. Telepítse a Velero CLI-t a munkaállomásán. A Windows a Chocolatey használatával telepítheti a Velero ügyfelet:

    choco install velero
    
  2. Állítsa be az Azure Storage-fiókot és a blobtárolót.

    Az Azure Storage-fiók és a blobtároló létrehozásához aktív Azure-előfizetés szükséges, mivel a Velerónak mindkettőre szüksége van a biztonsági másolatok tárolásához. Ha a biztonsági másolatok létrehozásakor használttól eltérő Azure-előfizetést szeretne használni, módosíthatja az Azure-előfizetést. Alapértelmezés szerint a Velero ugyanabban az előfizetésben tárolja a biztonsági másolatokat, mint a virtuális gépeket és a lemezeket, és nem teszi lehetővé a biztonsági másolatok visszaállítását egy másik előfizetésben lévő erőforráscsoportba. Az előfizetések közötti biztonsági mentések és visszaállítás engedélyezéséhez meg kell adnia a használni kívánt előfizetés-azonosítót.

    A PowerShell-paranccsal váltson arra az Azure-előfizetésre, amelyről biztonsági másolatokat az account szeretne készíteni.

    Először keresse meg az előfizetés-azonosító nevét:

    AZURE_BACKUP_SUBSCRIPTION_NAME=<NAME_OF_TARGET_SUBSCRIPTION>
    AZURE_BACKUP_SUBSCRIPTION_ID=$(az account list --query="[?name=='$AZURE_BACKUP_SUBSCRIPTION_NAME'].id | [0]" -o tsv)
    

    Másodszor állítsa be az előfizetést az aktuális aktív előfizetésre:

    az account set -s $AZURE_BACKUP_SUBSCRIPTION_ID
    

    Ezután hozzon létre egy erőforráscsoportot a biztonsági másolatok tárfiókja számára, majd futtassa az alábbi parancsot (szükség szerint módosítva a helyet). A példa egy külön erőforráscsoportban létrehozott Velero_Backups tárfiókot mutat be.

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

    Létre kell hoznia a tárfiókot egy globálisan egyedi azonosítóval, mivel ez a DNS-hez használatos. Az alábbi példaszkvenció véletlenszerű nevet hoz létre a használatával, de bármilyen nevet kiválaszthat, ha követi a tárfiókok Azure-beli uuidgenuuidgen A tárfiók az adattitkosítással jön létre az "adatáttitkosítás" képességekkel (Microsoft által felügyelt kulcsok), és úgy van konfigurálva, hogy csak HTTPS-kapcsolaton keresztül engedélyezze a hozzáférést.

    A tárfiók létrehozásához futtassa a következő parancsot:

    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
    

    Végül hozza létre a nevű velero blobtárolót. Választhat másik nevet is, de lehetőleg egyedinek kell lennie egyetlen Kubernetes-fürtön.

    BLOB_CONTAINER=velero
    az storage container create -n $BLOB_CONTAINER --public-access off --account-name $AZURE_STORAGE_ACCOUNT_ID
    
  3. Állítson be engedélyeket a Veleróhoz, és hozzon létre egy szolgáltatásnévt.

    Először szerezze be az Azure-fiók előfizetés-azonosítóját és bérlőazonosítóját a következő parancs futtatásával:

    AZURE_SUBSCRIPTION_ID=`az account list --query '[?isDefault].id' -o tsv`
    AZURE_TENANT_ID=`az account list --query '[?isDefault].tenantId' -o tsv`
    

    Hozzon létre egy szolgáltatásnév a Contributor szerepkörhöz. Ez a szerepkör az egész előfizetésre kiterjedő hozzáféréssel rendelkezik, ezért meg kell védenie ezt a hitelesítő adatokat. A szolgáltatásnév létrehozásakor hagyja, hogy a CLI létrehoz egy jelszót, és mindenképpen rögzítse a jelszót.

    Ha a Velerót több blobtárolóval rendelkező fürt biztonsági létrehozására használja, javasoljuk, hogy az alapértelmezett név helyett fürtönként egyedi felhasználónevet hozzon velero létre.

    Megjegyzés

    Ha másik előfizetést használ a biztonsági másolatok és a fürterőforrások számára, ügyeljen arra, hogy mindkét előfizetést megadja a az parancsban a --scopes használatával.

    AZURE_CLIENT_SECRET=`az ad sp create-for-rbac --name "velero" --role "Contributor" --query 'password' -o tsv \
    --scopes  /subscriptions/$AZURE_SUBSCRIPTION_ID[ /subscriptions/$AZURE_BACKUP_SUBSCRIPTION_ID]`
    

    Győződjön meg arról, hogy a értéke --name nem ütközik más szolgáltatásnévvel és alkalmazásregisztrációval.

    A szolgáltatásnév létrehozása után szerezze be az ügyfél-azonosítót a következő parancs futtatásával:

    AZURE_CLIENT_ID=`az ad sp list --display-name "velero" --query '[0].appId' -o tsv`
    

    Végül hozzon létre egy fájlt, amely az összes releváns környezeti változót tartalmazza. A parancs az alábbi példához hasonló:

    cat << EOF  > ./credentials-velero
    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
    
  4. Telepítse és indítsa el a Velerót.

    Telepítse a Velerót az összes előfeltételt is beleértve a fürtön, majd indítsa el az üzembe helyezést. Az üzemelő példány létrehoz egy nevű névteret, velero és elhelyez benne egy nevű velero üzemelő példányot.

    A Kubernetes-kötetek fájlrendszerszinten való biztonsági mentése érdekében használja a Resticet, és mindenképpen adja hozzá a következőt: . A virtuális Azure Stack HCI AKS jelenleg nem támogatja a kötet-pillanatképeket.

    velero install \
       --provider azure \
       --plugins velero/velero-plugin-for-microsoft-azure:v1.3.0 \
       --bucket $BLOB_CONTAINER \
       --secret-file ./credentials-velero \
       --backup-location-config resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,storageAccount=$AZURE_STORAGE_ACCOUNT_ID[,subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID] \
       --use-restic
    
  5. A következő parancs futtatásával ellenőrizze, hogy a Velero szolgáltatás megfelelően fut-e:

    kubectl -n velero get pods
    kubectl logs deployment/velero -n Velero
    

Számítási feladatfürt biztonságiának biztonsági létrehozása a Veleróval

A fürtben lévő összes objektumról biztonsági mentést vagy visszaállítást, illetve típus, névtér vagy címke alapján szűrheti az objektumokat.

A fürt alapszintű, igény szerinti biztonsági mentésének futtatása:

velero backup create <BACKUP-NAME> --default-volumes-to-restic

Biztonsági mentés előrehaladásának ellenőrzése:

velero backup describe <BACKUP-NAME>

A fenti utasításokat követve megtekintheti a biztonsági mentést az Azure Storage-fiókjában a létrehozott blobtárolóban.

Számítási feladatfürt visszaállítása a Veleróval

Először létre kell hoznia egy új fürtöt a visszaállításához, mivel a fürt biztonsági másolatát nem tudja visszaállítani egy meglévő fürtre. A visszaállítási művelettel visszaállíthatja az összes objektumot és állandó kötetet egy korábban létrehozott biztonsági másolatból. Az objektumok és állandó kötetek szűrt részkészletét is visszaállíthatja.

Futtassa a következő lépéseket a célfürtön, ahol vissza szeretné állítani a biztonsági mentést:

  1. Telepítse és konfigurálja a Velerót ugyanazokkal az Azure-beli hitelesítő adatokkal, mint a forrásfürthöz.

  2. Az alábbi parancs futtatásával győződjön meg arról, hogy a Velero Backup objektum létrejött. A Velero-erőforrások szinkronizálva vannak a felhőtárhelyben lévő biztonsági mentési fájlokkal.

    velero backup describe <BACKUP-NAME>
    
  3. Miután megerősítette, hogy a megfelelő biztonsági mentés () elérhető, a következő paranccsal mindent <BACKUP-NAME> visszaállíthat:

    velero restore create --from-backup <BACKUP-NAME>
    

Velero eltávolítása

Ha teljesen el szeretné távolítani a Velerót a fürtről, a következő parancsok eltávolítják a által létrehozott összes velero install erőforrást:

kubectl delete namespace/velero clusterrolebinding/velero
kubectl delete crds -l component=velero

További megjegyzések

  • Velero on Windows: A Velero hivatalosan nem támogatja a Windows. A tesztelés során a Velero csapata csak állapot nélküli biztonsági mentést Windows alkalmazásokról. A restic integration and backups of stateful applications or persistent volumes are not supported.

  • Velero CLI-súgó: Az adott parancshoz társított összes beállítást az jelölővel és az --help paranccsal láthatja. A például velero restore create --help a parancshoz társított összes lehetőséget velero restore create megjeleníti. Vagy a összes beállításának listához futtassa a velero restorevelero restore --help következőt:

      velero restore [command]
      Available Commands:
      create      Create a restore
      delete      Delete restores
      describe    Describe restores
      get         Get restores
      logs        Get restore logs
    

Hivatkozások

A Velero WorksRestic-integrációja