Biztonsági mentés, számítási feladatok fürtjeinek visszaállítása a Velero használatával
A következőkre vonatkozik: AKS az Azure Local 22H2-n, AKS Windows Serveren
Ez a cikk azt ismerteti, hogyan telepíthető és használható a Velero a számítási feladatok és a célfürtök biztonsági mentésére és visszaállítására az Azure Blob Storage vagy a MinIO Storage használatával az Azure Arc által engedélyezett AKS-ben.
A Velero egy nyílt forráskódú közösségi szabványos eszköz a Kubernetes-fürtobjektumok és állandó kötetek biztonsági mentéséhez és visszaállításához. Támogatja a különböző tárolószolgáltatókat a biztonsági másolatok tárolásához. Ha egy AKS Arc-cél Kubernetes-fürt összeomlik, és nem sikerül helyreállítani, a Velero biztonsági mentéssel visszaállíthatja annak tartalmát és belső API-objektumait egy új fürtre.
Ha nem szeretné tárolni a biztonsági másolatokat az Azure Blob Storage-ban, használhatja a MinIO-t a Veleroval. Ez a cikk azt ismerteti, hogyan telepítheti és konfigurálhatja a Velerot az Azure Blob Storage használatára, vagy hogyan telepítheti és konfigurálhatja a Velerot a MinIO Storage használatára.
Feljegyzés
A Velero hivatalosan nem támogatja a Microsoft Windowst. A tesztelés során a Velero csapata csak állapot nélküli Windows-alkalmazásokat tudott biztonsági másolatot készíteni.
Restic
az állapotalapú alkalmazások vagy állandó kötetek integrációja és biztonsági mentése nem támogatott.
Előfeltételek
A Velero üzembe helyezése előtt végezze el ezeket az előfeltételeket:
- Telepítse az Azure CLI-t.
-
Telepítse a elemet
Chocolatey
. AChocolatey
Velero-ügyfelet, amely magában foglalja a Velero CLI-t, windowsos gépen is telepítheti.
Velero telepítése az Azure Blob Storage-ral
Az ebben a szakaszban ismertetett eljárások bemutatják, hogyan telepíthető a Velero, és hogyan használhatja az Azure Blob Storage-t biztonsági mentésekhez. Ha nem szeretné tárolni a biztonsági másolatokat az Azure-ban, nyissa meg a Velero telepítését a MiniO Storage használatával.
Nyissa meg a PowerShellt rendszergazdaként.
Jelentkezzen be az Azure-ba az Azure CLI használatával:
az login --use-device-code
Telepítse a Velero CLI-t a következő parancs futtatásával:
Feljegyzés
A
--use-restic
jelző nem támogatott a Velero 1.10-es és újabb verzióiban. A jelző csak az 1.9.x verzióban támogatott.choco install velero
Szükség esetén váltson a biztonsági mentésekhez használni kívánt Azure-előfizetésre.
Alapértelmezés szerint a Velero ugyanabban az Azure-előfizetésben tárolja a biztonsági mentéseket, mint a virtuális gépek és lemezek, é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. Ha engedélyezni szeretné a biztonsági mentési és visszaállítási műveleteket az előfizetések között, adjon meg egy előfizetést a biztonsági mentésekhez. Ezt a lépést kihagyhatja, ha már szerepel a biztonsági mentésekhez használni kívánt előfizetésben.
Váltson a biztonsági mentésekhez használni kívánt előfizetésre:
Az előfizetés azonosítójának megkereséséhez használja az előfizetés 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)
Ezután módosítsa az előfizetést:
az account set -s $AZURE_BACKUP_SUBSCRIPTION_ID
Hozzon létre egy Azure Storage-fiókot és blobtárolót.
Ha az Azure Blob Storage-t használja a biztonsági mentésekhez, a Veleronak szüksége van egy tárfiókra és egy blobtárolóra a biztonsági mentések tárolásához. Az alábbi példa egy új Velero_Backups erőforráscsoportban létrehozott tárfiókot mutatja be.
A tárfiókot globálisan egyedi azonosítóval kell létrehoznia, amely használható a DNS-ben. A mintaszkript az
uuidgen
alkalmazás használatával véletlenszerűen hoz létre egyedi nevet. Bármilyen módszert használhat, ha a név a tárfiókokra vonatkozó Azure-elnevezési szabályokat követi.A tárfiókot a rendszer inaktív állapotú titkosítással hozza létre (a Microsoft által felügyelt kulcsok használatával), és úgy van konfigurálva, hogy csak HTTPS-kapcsolatokon keresztül engedélyezze a hozzáférést.
A tárfiók és a blobtároló létrehozásához kövesse az alábbi lépéseket:
Hozzon létre egy erőforráscsoportot a biztonsági mentési tárfiókhoz. Szükség esetén módosítsa a könyvtárakat a kívánt helyre, és futtassa a következő parancsokat:
$AZURE_BACKUP_RESOURCE_GROUP="Velero_Backups" az group create -n $AZURE_BACKUP_RESOURCE_GROUP --location WestUS
Hozza létre a tárfiókot:
$AZURE_STORAGE_ACCOUNT_ID="<NAME_OF_ACCOUNT_TO_ASSIGN>" 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
Blobtároló létrehozása:
$BLOB_CONTAINER="velero" az storage container create -n $BLOB_CONTAINER --public-access off --account-name $AZURE_STORAGE_ACCOUNT_ID
A példa egy blobtárolót
velero
használ. Használhat egy másik nevet, lehetőleg egyedit egyetlen Kubernetes-fürtön.
Szolgáltatásnév létrehozása:
Szerezze be az Azure-fiók előfizetési azonosítóját és bérlőazonosítóját:
$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ásnevet, amely közreműködői jogosultságokkal rendelkezik.
Létrehozhat egy szolgáltatásnevet közreműködői szerepkörrel, vagy használhat egyéni szerepkört:
- Közreműködői szerepkör: A közreműködői szerepkör az előfizetés egészére kiterjedő hozzáférést biztosít, ezért mindenképpen védje ezt a hitelesítő adatot, ha ezt a szerepkört rendeli hozzá.
- Egyéni szerepkör: Ha szigorúbb szerepkörre van szüksége, használjon egyéni szerepkört.
A közreműködői szerepkör hozzárendelése:
Ha a Velero használatával készít biztonsági másolatot több fürtről több blobtárolóval, a név
velero
használata helyett érdemes lehet egyedi felhasználónevet létrehoznia az egyes fürtökhöz.A közreműködői szerepkörrel rendelkező szolgáltatásnév létrehozásához használja az alábbi parancsot. Cserélje le a saját előfizetés-azonosítóját és opcionálisan a saját szolgáltatásnév nevét. A Microsoft Entra ID létrehoz egy titkos kulcsot.
$AZURE_CLIENT_SECRET=(az ad sp create-for-rbac --name "velero" --role "Contributor" --query 'password' -o tsv --scopes /subscriptions/$AZURE_SUBSCRIPTION_ID)
Szükség esetén végezze el a következő módosításokat a parancson:
Ha különböző előfizetéseket szeretne használni a számítási feladatfürthöz és a Velero biztonsági mentési fájljaihoz, adja meg mindkét előfizetés azonosítóját, ahogyan az alábbi példában látható:
$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)
Ha nem szeretné a szolgáltatásnév nevét használni
velero
, győződjön meg arról, hogy a--name
választott név egyedi a Microsoft Entra-azonosítóban, és nem ütközik más szolgáltatásnevekkel vagy alkalmazásregisztrációkkal.
Fontos
A titkos kód csak ebben a lépésben jelenik meg a szolgáltatásnév létrehozásakor. Ügyeljen arra, hogy jegyezze fel a titkos kulcsokat a későbbi lépésekben való használathoz.
Egyéni szerepkör használata:
Ha engedélyezni szeretné a minimális erőforrás-szolgáltatói műveleteket, hozzon létre egy egyéni szerepkört, és rendelje hozzá a szerepkört a szolgáltatásnévhez.
Hozzon létre egy azure-role.json nevű fájlt a következő tartalommal. Cserélje le saját egyéni szerepkörnevét és előfizetés-azonosítóját:
{ "Name": <CUSTOM_ROLE_NAME>, "Id": null, "IsCustom": true, "Description": "Velero related permissions to perform backups, restores and deletions", "Actions": [ "Microsoft.Compute/disks/read", "Microsoft.Compute/disks/write", "Microsoft.Compute/disks/endGetAccess/action", "Microsoft.Compute/disks/beginGetAccess/action", "Microsoft.Compute/snapshots/read", "Microsoft.Compute/snapshots/write", "Microsoft.Compute/snapshots/delete", "Microsoft.Storage/storageAccounts/listkeys/action", "Microsoft.Storage/storageAccounts/regeneratekey/action", "Microsoft.Storage/storageAccounts/read" ], "NotActions": [], "AssignableScopes": [ "<SUBSCRIPTION_ID>" ] }
Hozza létre az egyéni szerepkört és szolgáltatásnevet:
az role definition create --role-definition azure-role.json $AZURE_CLIENT_SECRET=(az ad sp create-for-rbac --name "velero" --role "<CUSTOM_ROLE>" --query 'password' -o tsv --scopes /subscriptions/$AZURE_SUBSCRIPTION_ID)
Az egyéni szerepkörök létrehozásáról további információt a Velero engedélyeinek beállítása című témakörben talál.
Kérje le a szolgáltatásnév nevét, és rendelje hozzá ezt a nevet a AZURE_CLIENT_ID változóhoz:
$AZURE_CLIENT_ID=(az ad sp list --display-name "velero" --query '[0].appId' -o tsv)
Feljegyzés
A szolgáltatásnevek lejárnak. Ha meg szeretné tudni, hogy mikor jár le az új szolgáltatásnév, futtassa a következő parancsot:
az ad sp show --id $AZURE_CLIENT_ID
.Hozzon létre egy fájlt, amely tartalmazza a Velero telepítéséhez szükséges változókat. A parancs a következőhöz hasonlóan néz ki:
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_BACKUP_RESOURCE_GROUP} AZURE_CLOUD_NAME=AzurePublicCloud" | Out-File -FilePath ./credentials-velero.txt
Fontos
A Velero telepítése után törölje ezt a fájlt. Az ügyfél titkos kódja egyszerű szöveges, ami biztonsági kockázatot jelenthet.
A folytatás előtt ellenőrizze, hogy a fájl megfelelően van-e formázva. A fájlnévkiterjesztés nem számít.
- Távolítsa el a további szóközöket vagy lapokat.
- Győződjön meg arról, hogy a változónevek helyesek.
Telepítse és indítsa el a Velerot.
Telepítse a Velerot a fürtre, és indítsa el az üzembe helyezést. Ez az eljárás létrehoz egy névteret, amelyet meghív
velero
, és hozzáad egy névtérhez elnevezettvelero
üzembe helyezést.Telepítse a Velero-t a következő paranccsal. Testre kell szabnia a példaparancsot.
velero install --provider azure --plugins velero/velero-plugin-for-microsoft-azure:v1.5.0 --bucket $BLOB_CONTAINER --secret-file ./credentials-velero.txt --backup-location-config resourceGroup=$AZURE_BACKUP_RESOURCE_GROUP,storageAccount=$AZURE_STORAGE_ACCOUNT_ID,subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID --use-restic
Igény szerint állítsa be a következő változókat:
A parancs telepíti a Microsoft Azure beépülő modult, amelynek kompatibilisnek kell lennie a használt Velero CLI-verzióval. A példaparancs a Microsoft Azure beépülő modul 1.5.0-s verzióját használja, amely kompatibilis a Velero CLI legújabb, 1.9.0-s verziójával. A Valero CLI-verzióval telepíteni kívánt Microsoft Azure beépülő modul verziószámának megtekintéséhez tekintse meg a kompatibilitási mátrixot.
Mindenképpen adja meg a paramétert a
--use-restic
Kubernetes-kötetek fájlrendszerszintűRestic
biztonsági mentésének engedélyezéséhez.Restic
bármilyen típusú Kubernetes-kötet biztonsági mentéséhez használható. Alapértelmezés szerint a Velero támogatja az Amazon EBS-kötetek, az Azure Managed Disks és a Google Persistent Disks állandó köteteinek pillanatképeit. Az AKS Arcban a Kubernetes-kötetek fürt megosztott kötetekkel (CSV-kkel) tárolják az adatokat.Restic
Ezért az állandó kötet pillanatképeinek engedélyezéséhez szükséges. Az AKS Arc jelenleg nem támogatja a kötet pillanatképeit.A(z)
subscriptionId=$AZURE_BACKUP_SUBSCRIPTION_ID
nem kötelező. Csak akkor kell megadnia, ha a Velero és a számítási feladatfürt különböző előfizetési azonosítókkal rendelkezik. Ha ugyanazt az Azure-előfizetést használják, eltávolíthatja a paramétertsubscriptionId
, és a credentials-velero.txt fájl megadja ezt az információt.
A Velero szolgáltatás automatikusan elindul a telepítéskor.
Ellenőrizze, hogy a Velero szolgáltatás megfelelően fut-e:
kubectl -n velero get pods kubectl logs deployment/velero -n velero
A
get pods
parancsnak azt kell mutatnia, hogy a Velero podok futnak.
A Velero telepítése a MinIO Storage használatával
Az ebben a szakaszban ismertetett eljárások bemutatják, hogyan telepíthető a Velero, és hogyan használhatja a MinIO Storage-t a biztonsági mentésekhez. Ha inkább az Azure Blob Storage-t szeretné használni a biztonsági mentésekhez, nyissa meg a Velero telepítését az Azure Blob Storage-tal.
Ha nem szeretné a biztonsági másolatokat a MinIO-ban tárolni, lépjen a Velero beállítása az Azure Blob Storage használatára.
Telepítse a Velero CLI-t az alábbi parancs futtatásával. Telepítse
Chocolately
, ha még nem tette meg.choco install velero
Telepítse a MinIO-t:
Hozzon létre egy állandó kötetet a MinIO biztonsági mentésének tárolásához. A példa létrehoz egy állandó kötetet az AKS Arc alapértelmezett tárolási osztályában, amely már létezik.
Hozzon létre egy minio-pvc-storage.yaml nevű YAML-fájlt a következő tartalommal:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: minio-pv-claim spec: storageClassName: default accessModes: - ReadWriteOnce resources: requests: storage: 100Gi
Hozza létre az állandó kötetet a következő parancs futtatásával:
kubectl create -f minio-pvc-storage.yaml
Hozzon létre egy minio-deployment.yaml nevű üzembehelyezési fájlt a MinIO elindításához. Adja meg a következő tartalmat. Az üzembe helyezés a létrehozott állandó kötetet fogja használni.
apiVersion: apps/v1 kind: Deployment metadata: name: minio-deployment spec: selector: matchLabels: app: minio strategy: type: Recreate template: metadata: labels: app: minio spec: volumes: - name: storage persistentVolumeClaim: claimName: minio-pv-claim containers: - name: minio image: minio/minio:latest args: - server - /storage env: - name: MINIO_ACCESS_KEY value: "<you can define this>" - name: MINIO_SECRET_KEY value: "<you can define this>" ports: - containerPort: 9000 hostPort: 9000 volumeMounts: - name: storage mountPath: "/storage"
Ezután hozza létre az üzembe helyezést:
kubectl create -f minio-deployment.yaml
Hozzon létre egy minio-service.yaml nevű Kubernetes-szolgáltatást. Ez a szolgáltatás külső IP-címeket biztosít a MinIO podnak.
Hozzon létre egy YAML-fájlt a következő beállításokkal a szolgáltatás konfigurálásához:
apiVersion: v1 kind: Service metadata: name: minio-service spec: type: LoadBalancer ports: - port: 9000 targetPort: 9000 protocol: TCP selector: app: minio
Ezután hozza létre a szolgáltatást:
kubectl create -f mino-service.yaml
Az alábbi parancs futtatásával kérje le a MinIO-pod külső IP-címét. Ezt a címet fogja használni a Velero telepítéséhez.
kubectl get svc
Annak ellenőrzéséhez, hogy a MinIO működik-e, jelentkezzen be az IP-címre egy böngészőben, vagy használja a MinIO-ügyfelet az alábbiak szerint.
Telepítse a MinIO-ügyfelet, és tallózással keresse meg a MinIO-fájlokat.
Töltse le a MinIO-ügyfelet:
Invoke-WebRequest -Uri "https://dl.minio.io/client/mc/release/windows-amd64/mc.exe" -OutFile "C:\mc.exe
Ezután állítson be egy aliast:
mc alias set minio http://10.10.77.6:9000 "minio_access_key" "minio_secret_key" --api s3v4
Végül tallózással tekintse át a MinIO-telepítést:
mc ls minio
Hozzon létre egy gyűjtőt a Velero-fájlok tárolásához. Ez a gyűjtő lesz használva a Velero telepítésében.
mc mb minio/velero-backup
Hozzon létre egy MinIO hitelesítő adatokat tartalmazó fájlt a minio.credentials fájlban a következő információkkal:
[default] aws_access_key_id=<minio_access_key> aws_secret_access_key=<minio_secret_key>
A Velero telepítése:
velero install --provider aws --bucket velero-backup --secret-file .\minio.credentials --backup-location-config region=minio,s3ForcePathStyle=true,s3Url=http://10.10.77.6:9000 --plugins velero/velero-plugin-for-aws:v1.1.0 --use-restic
A parancs futtatása előtt ellenőrizze a gyűjtő nevét, a MinIO hitelesítő adatait és a MinIO külső IP-címét.
Ellenőrizze, hogy a Velero szolgáltatás megfelelően fut-e:
kubectl -n velero get pods kubectl logs deployment/velero -n Velero
A
get pods
parancsnak azt kell mutatnia, hogy a Velero podok futnak.
Fürt biztonsági mentése
Biztonsági másolatot készíthet vagy visszaállíthat a fürt összes objektumára, vagy szűrheti az objektumokat típus, névtér és/vagy címke alapján.
Biztonsági mentés létrehozása
A Velero backup create
paranccsal biztonsági másolatokat hozhat létre a kiválasztott tárterületre. Az alábbi példák a --default-volumes-to-restic
jelölőt használják, amely pillanatképet hoz létre az állandó kötetekről. További biztonsági mentési lehetőségekért tekintse meg a Velero biztonsági mentési referenciát.
Igény szerinti biztonsági mentés a fürt összes névteréről:
velero backup create <BACKUP-NAME> --default-volumes-to-restic
Igény szerinti biztonsági mentés egyetlen névtérről a fürtben:
velero backup create <BACKUP-NAME> --include-namespaces <NAMESPACE1> --default-volumes-to-restic
Több kijelölt névtér igény szerinti biztonsági mentése a fürtben:
velero backup create <BACKUP-NAME> --include-namespaces <NAMESPACE-1>, <NAMESPACE-2> --default-volumes-to-restic
Biztonsági mentés állapotának ellenőrzése
A biztonsági mentés állapotának ellenőrzéséhez futtassa a következő parancsot:
velero backup describe <BACKUP-NAME>
Ha az Azure Blob Storage-t használja a biztonsági mentésekhez, megtekintheti a biztonsági mentést az Azure Storage-fiókjában a létrehozott blob/tároló alatt.
Fürt visszaállítása
Fürt visszaállításához létre kell hoznia egy új fürtöt a régi fürt visszaállításához. A fürt biztonsági másolatát nem állíthatja vissza meglévő fürtre.
A restore
parancs lehetővé teszi az összes objektum és állandó kötet visszaállítását egy korábban létrehozott biztonsági másolatból. Az objektumok és állandó kötetek csak szűrt részhalmazát is visszaállíthatja. További biztonsági mentési lehetőségekért tekintse meg az erőforrás-szűrést.
Azon a fürtön, amelybe vissza szeretné állítani a biztonsági mentést (a célfürtre):
A Velero üzembe helyezése a fenti utasítások alapján. Használja ugyanazokat az Azure-hitelesítő adatokat, amelyeket a forrásfürthöz használt.
Győződjön meg arról, hogy a Velero biztonsági mentési objektum a következő parancs futtatásával lett létrehozva. A Velero-erőforrások szinkronizálva vannak a felhőbeli tárolóban lévő biztonsági mentési fájlokkal.
velero backup describe <BACKUP-NAME>
Miután meggyőződett arról, hogy a megfelelő biztonsági mentés (
BACKUP-NAME
) létezik, állítsa vissza a biztonsági másolat összes objektumát:velero restore create --from-backup <BACKUP-NAME>
Segítség a Velero-parancsokkal kapcsolatban
Egy adott Velero-parancshoz társított összes beállítás megtekintéséhez használja a --help
jelölőt a paranccsal. Például velero restore create --help
a parancshoz velero restore create
társított összes beállítást megjeleníti.
Például a futtatás velero restore
összes beállításának velero restore --help
listázásához a következő információkat adja vissza:
velero restore [command]
Available Commands:
create Create a restore
delete Delete restores
describe Describe restores
get Get restores
logs Get restore logs
Velero eltávolítása
A Velero fürtből való eltávolításához és a Velero telepítése által létrehozott összes erőforrás eltávolításához futtassa a következő parancsokat:
kubectl delete namespace/velero clusterrolebinding/velero
kubectl delete crds -l component=velero