Biztonsági mentés, számításifeladat-fürtök visszaállítása a Velero használatával
A következőkre vonatkozik: AKS az Azure Stack HCI 22H2-ben, AKS Windows Serveren
Ez a cikk azt ismerteti, hogyan telepítheti és használhatja a Velerot a számítási feladatok és a célfürtök biztonsági mentéséhez és visszaállításához az Azure Arc által engedélyezett AKS-ben Azure Blob Storage vagy MinIO-tároló használatával.
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 áll helyre, velero biztonsági mentéssel visszaállíthatja annak tartalmát és belső API-objektumait egy új fürtre.
Ha nem szeretné a biztonsági másolatokat Azure Blob Storage tárolni, használhatja a MinIO-t a Velero-val. Ez a cikk azt ismerteti, hogyan telepítheti és konfigurálhatja a Velero-t a Azure Blob Storage használatára, vagy hogyan telepítheti és konfigurálhatja a Velero-t a MinIO Storage használatára.
Megjegyzé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ásokról 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ésének megkezdé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 Azure Blob Storage
Az ebben a szakaszban ismertetett eljárások azt mutatják be, hogyan telepítheti a Velero-t, és hogyan használhatja Azure Blob Storage biztonsági mentésekhez. Ha nem szeretné tárolni a biztonsági másolatokat az Azure-ban, lépjen a Velero telepítése a MiniO-tárolóval című témakörre.
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:
Megjegyzés
A --use-restic jelző már nem támogatott a Velero 1.10+-os verziójában, hogy használni tudja az 1.9.x jelölőverziót.
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 a 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. A biztonsági mentések és visszaállítások előfizetések közötti engedélyezéséhez adja meg a biztonsági mentésekhez használni kívánt előfizetést. 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 Azure Blob Storage használ 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 metódust használhat, ha a név a tárfiókokra vonatkozó Azure-elnevezési szabályokat követi.A tárfiók inaktív állapotú titkosítással jön létre (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 címtá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 nevű 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:
Kérje le az Azure-fiók előfizetés-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 közreműködői jogosultságokkal rendelkező szolgáltatásnevet.
Létrehozhat egy szolgáltatásnevet a Közreműködő szerepkörrel, vagy használhat egyéni szerepkört:
- Közreműködői szerepkör: A Közreműködő szerepkör az előfizetés egészére kiterjedő hozzáférést biztosít, ezért győződjön meg arról, hogy ezt a hitelesítő adatot védi, 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ő 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 minden fürthöz egyedi felhasználónevet létrehozni.Ha közreműködői szerepkörrel szeretne létrehozni egy szolgáltatásnevet, használja az alábbi parancsot. Helyettesítse be a saját előfizetés-azonosítóját és opcionálisan a saját egyszerű szolgáltatásnevét. 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 az alábbi 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, az alábbi példához hasonlóan:
$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é szolgáltatásnévként használni
velero
, győződjön meg arról, hogy a--name
választott név egyedi a Microsoft Entra ID, és nem ütközik más szolgáltatásnévvel vagy alkalmazásregisztrációval.
Fontos
A titkos kód csak ebben a lépésben jelenik meg, amikor a szolgáltatásnév létrejön. Ügyeljen arra, hogy jegyezze fel a titkos kulcsokat a jövőbeli 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á ezt 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" ], "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)
Megjegyzés
A szolgáltatásnevek lejárnak. Ha tudni szeretné, 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éshez 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 a fájlt. Az ügyfél titkos kódja egyszerű szöveges, ami biztonsági kockázatot jelenthet.
Mielőtt továbblép, 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 felesleges 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 Velero-t.
Telepítse a Velero-t a fürtre, és indítsa el az üzembe helyezést. Ez az eljárás létrehoz egy nevű
velero
névteret, és hozzáad egy nevűvelero
üzembe helyezést a névtérhez.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 az Ön által 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. Ha meg szeretné tudni, hogy a Microsoft Azure beépülő modul melyik verzióját szeretné telepíteni a Valero CLI-verzióval, tekintse meg a kompatibilitási mátrixot.
Mindenképpen adja meg a paramétert a
--use-restic
Kubernetes-kötetek fájlrendszerszintű biztonsági mentésének engedélyezéséhez a használatávalRestic
.Restic
bármilyen típusú Kubernetes-kötet biztonsági mentésére használható. Alapértelmezés szerint a Velero támogatja az Amazon EBS-kötetek, az Azure Managed Disks és a Google Állandó lemezek állandó köteteinek pillanatképek készítését. Az AKS Arcban a Kubernetes-kötetek fürt megosztott köteteket (CSV-ket) használnak az adatok tárolásához.Restic
Ezért az állandó kötet-pillanatképek engedélyezéséhez van szükség. 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ásifeladat-fürt eltérő előfizetési azonosítókkal rendelkezik. Ha ugyanazt az Azure-előfizetést használják, eltávolíthatja asubscriptionId
paramétert, és a credentials-velero.txt fájl megadja ezeket az információkat.
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 MinIO-tárolóval
Az ebben a szakaszban ismertetett eljárások azt mutatják be, hogyan telepítheti a Velero-t, és hogyan használhatja a MinIO-tárolót a biztonsági mentésekhez. Ha inkább a Azure Blob Storage-t szeretné használni a biztonsági mentésekhez, lépjen a Velero telepítése Azure Blob Storage.
Ha nem szeretné a biztonsági másolatokat a MinIO-ban tárolni, lépjen a Velero beállítása a Azure Blob Storage használatára című témakörre.
Telepítse a Velero CLI-t a következő parancs futtatásával. Telepíteni
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 alapértelmezett tárosztályban az AKS Arcban, 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 az alábbi tartalmakat. 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. Ezzel a címmel fogja telepíteni a Velero-t.
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ózzon a MinIO-fájlok között.
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 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. Ezt a gyűjtőt fogja használni a Velero telepítése.
mc mb minio/velero-backup
Hozzon létre egy MinIO hitelesítőadat-fájlt a következő információkkal:
minio.credentials [default] aws_access_key_id=<minio_access_key> aws_secret_access_key=<minio_secret_key>
Telepítse a Velero-t:
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árolóba. Az alábbi példák a jelölőt --default-volumes-to-restic
használják, amely pillanatképet hoz létre az állandó kötetekről. További biztonsági mentési lehetőségekért lásd a Velero biztonsági mentési referenciájá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
A fürt egyetlen névterének igény szerinti biztonsági mentése:
velero backup create <BACKUP-NAME> --include-namespaces <NAMESPACE1> --default-volumes-to-restic
Igény szerinti biztonsági mentés több kiválasztott névtérről a fürtben:
velero backup create <BACKUP-NAME> --include-namespaces <NAMESPACE-1>, <NAMESPACE-2> --default-volumes-to-restic
A biztonsági mentés állapotának ellenőrzése
A biztonsági mentés állapotának ellenőrzéséhez futtassa az alábbi parancsot:
velero backup describe <BACKUP-NAME>
Ha Azure Blob Storage használ a biztonsági mentésekhez, megtekintheti a biztonsági másolatot 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ásolata nem állítható vissza meglévő fürtre.
A restore
paranccsal 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 csak szűrt részhalmazát is visszaállíthatja. További biztonsági mentési lehetőségekért lásd: Erőforrás-szűrés.
Azon a fürtön, amelyen vissza szeretné állítani a biztonsági mentést (a célfürtre):
Helyezze üzembe a Velero-t a fenti utasításokat követve. Használja ugyanazokat az Azure-beli 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 másolat (
BACKUP-NAME
) található, állítsa vissza a biztonsági másolatban lévő összes objektumot:velero restore create --from-backup <BACKUP-NAME>
Segítség kérése 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 a velero restore create --help
parancshoz velero restore create
társított összes beállítást megjeleníti.
Például a parancs összes beállításának velero restore
listázásához futtassa a parancsot velero restore --help
, amely 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és á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
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: