Migrálás a faalapú tárolási osztályból a CSI-illesztőprogramokra az Azure Kubernetes Service-ben (AKS)
A Container Storage Interface (CSI) illesztő implementációját az Azure Kubernetes Service (AKS) 1.21-es verziójától kezdve vezettük be. A CSI szabványként való alkalmazásával és használatával a meglévő állapotalapú számítási feladatokat a fákon belüli állandó köteteket (PV-ket) kell migrálni vagy frissíteni a CSI-illesztőprogram használatához.
A folyamat lehető legegyszerűbbé tételéhez és az adatvesztések hiányának biztosításához ez a cikk különböző migrálási lehetőségeket biztosít. Ezek a lehetőségek olyan szkripteket tartalmaznak, amelyekkel zökkenőmentesen migrálhat a fáról az Azure Disksre és az Azure Files CSI-illesztőprogramokra.
Mielőtt elkezdené
- Az Azure CLI 2.37.0-s vagy újabb verziója. Futtassa
az --version
a verziót, és futtassaaz upgrade
a verzió frissítéséhez. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. - A Kubectl és a fürtgazdák hozzáférhetnek a PVC-hez vagy PV-hez, a kötet pillanatképéhez vagy a kötet pillanatkép-tartalmához, lekéréséhez, listázásához, törléséhez. Microsoft Entra RBAC-kompatibilis fürtök esetén Ön az Azure Kubernetes Service RBAC-fürt rendszergazdai szerepkörének tagja.
Lemezkötetek migrálása
Feljegyzés
A címkék failure-domain.beta.kubernetes.io/zone
elavultak failure-domain.beta.kubernetes.io/region
az AKS 1.24-ben, és el lettek távolítva az 1.28-ban. Ha a meglévő állandó kötetek továbbra is a nodeAffinity függvényt használják, az új állandó kötetbeállításban módosítania kell azokat topology.kubernetes.io/zone
és topology.kubernetes.io/region
a címkéket.
A fáról a CSI-ra való migrálás két áttelepítési lehetőséggel támogatott:
- Statikus kötet létrehozása
- Dinamikus kötet létrehozása
Statikus kötet létrehozása
Ezzel a beállítással statikusan hozzárendel claimRef
egy PV-t egy később létrehozandó új PVC-hez, és megadja a volumeName
PersistentVolumeClaim értéket.
Ennek a megközelítésnek az előnyei a következők:
- A folyamat egyszerű és automatizálható.
- Nincs szükség az eredeti konfiguráció eltávolítására a fastruktúrájú tárolóosztály használatával.
- A kockázat alacsony, mivel csak a Kubernetes PV/PVC logikai törlését hajtja végre, a tényleges fizikai adatok nem törlődnek.
- Nem merült fel többletköltség, mivel nem kellett további Azure-objektumokat létrehoznia, például lemezeket, pillanatképeket stb.
Az alábbiakat érdemes megfontolni:
- Az eredeti, dinamikus stílusú kötetekről statikus kötetekre való áttéréshez manuálisan kell létrehozni és kezelni a PV-objektumokat minden beállításhoz.
- Számolni kell az alkalmazás lehetséges állásidejével, amikor az új alkalmazás ismételt üzembe helyezése az új PVC-objektumra vonatkozó hivatkozással történik.
Migrálás
Frissítse a meglévő PV-t
ReclaimPolicy
a Törlésről a Megtartás értékre a következő parancs futtatásával:kubectl patch pv pvName -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
Cserélje le a pvName nevet a kijelölt PersistentVolume nevére. Másik lehetőségként, ha több virtuális gép esetében szeretné frissíteni a reclaimPolicy szolgáltatást, hozzon létre egy patchReclaimPVs.sh nevű fájlt, és másolja a következő kódba.
#!/bin/bash # Patch the Persistent Volume in case ReclaimPolicy is Delete NAMESPACE=$1 i=1 for PVC in $(kubectl get pvc -n $NAMESPACE | awk '{ print $1}'); do # Ignore first record as it contains header if [ $i -eq 1 ]; then i=$((i + 1)) else PV="$(kubectl get pvc $PVC -n $NAMESPACE -o jsonpath='{.spec.volumeName}')" RECLAIMPOLICY="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" echo "Reclaim Policy for Persistent Volume $PV is $RECLAIMPOLICY" if [[ $RECLAIMPOLICY == "Delete" ]]; then echo "Updating ReclaimPolicy for $pv to Retain" kubectl patch pv $PV -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' fi fi done
Futtassa a szkriptet a paraméterrel a
namespace
fürt névterének./PatchReclaimPolicy.sh <namespace>
megadásához.Az alábbi parancs futtatásával lekérheti a névtérben lévő összes PVC listáját a creationTimestamp szerint rendezve. Állítsa be a névteret az
--namespace
argumentum és a tényleges fürtnévtér használatával.kubectl get pvc -n <namespace> --sort-by=.metadata.creationTimestamp -o custom-columns=NAME:.metadata.name,CreationTime:.metadata.creationTimestamp,StorageClass:.spec.storageClassName,Size:.spec.resources.requests.storage
Ez a lépés akkor hasznos, ha nagy számú, migrálandó virtuális gépe van, és egyszerre néhányat át szeretne migrálni. A parancs futtatásával azonosíthatja, hogy mely PVC-k lettek létrehozva egy adott időkeretben. A CreatePV.sh szkript futtatásakor a két paraméter a kezdési és a befejezési idő, amelyek lehetővé teszik, hogy csak ebben az időszakban migrálja a PVC-ket.
Hozzon létre egy CreatePV.sh nevű fájlt, és másolja a következő kódba. A szkript a következőket teszi:
- Létrehoz egy új PersistentVolume-t a storage osztály
storageClassName
névtereiben lévő összes PersistentVolume nevévelexisting-pv-csi
. - Új PVC-név konfigurálása a következőképpen
existing-pvc-csi
: . - Létrehoz egy új PVC-t a megadott PV-névvel.
#!/bin/bash #kubectl get pvc -n <namespace> --sort-by=.metadata.creationTimestamp -o custom-columns=NAME:.metadata.name,CreationTime:.metadata.creationTimestamp,StorageClass:.spec.storageClassName,Size:.spec.resources.requests.storage # TimeFormat 2022-04-20T13:19:56Z NAMESPACE=$1 FILENAME=$(date +%Y%m%d%H%M)-$NAMESPACE EXISTING_STORAGE_CLASS=$2 STORAGE_CLASS_NEW=$3 STARTTIMESTAMP=$4 ENDTIMESTAMP=$5 i=1 for PVC in $(kubectl get pvc -n $NAMESPACE | awk '{ print $1}'); do # Ignore first record as it contains header if [ $i -eq 1 ]; then i=$((i + 1)) else PVC_CREATION_TIME=$(kubectl get pvc $PVC -n $NAMESPACE -o jsonpath='{.metadata.creationTimestamp}') if [[ $PVC_CREATION_TIME >= $STARTTIMESTAMP ]]; then if [[ $ENDTIMESTAMP > $PVC_CREATION_TIME ]]; then PV="$(kubectl get pvc $PVC -n $NAMESPACE -o jsonpath='{.spec.volumeName}')" RECLAIM_POLICY="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" STORAGECLASS="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.storageClassName}')" echo $PVC RECLAIM_POLICY="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" if [[ $RECLAIM_POLICY == "Retain" ]]; then if [[ $STORAGECLASS == $EXISTING_STORAGE_CLASS ]]; then STORAGE_SIZE="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.capacity.storage}')" SKU_NAME="$(kubectl get storageClass $STORAGE_CLASS_NEW -o jsonpath='{.parameters.skuname}')" DISK_URI="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.azureDisk.diskURI}')" PERSISTENT_VOLUME_RECLAIM_POLICY="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" cat >$PVC-csi.yaml <<EOF apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: disk.csi.azure.com name: $PV-csi spec: accessModes: - ReadWriteOnce capacity: storage: $STORAGE_SIZE claimRef: apiVersion: v1 kind: PersistentVolumeClaim name: $PVC-csi namespace: $NAMESPACE csi: driver: disk.csi.azure.com volumeAttributes: csi.storage.k8s.io/pv/name: $PV-csi csi.storage.k8s.io/pvc/name: $PVC-csi csi.storage.k8s.io/pvc/namespace: $NAMESPACE requestedsizegib: "$STORAGE_SIZE" skuname: $SKU_NAME volumeHandle: $DISK_URI persistentVolumeReclaimPolicy: $PERSISTENT_VOLUME_RECLAIM_POLICY storageClassName: $STORAGE_CLASS_NEW --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: $PVC-csi namespace: $NAMESPACE spec: accessModes: - ReadWriteOnce storageClassName: $STORAGE_CLASS_NEW resources: requests: storage: $STORAGE_SIZE volumeName: $PV-csi EOF kubectl apply -f $PVC-csi.yaml LINE="PVC:$PVC,PV:$PV,StorageClassTarget:$STORAGE_CLASS_NEW" printf '%s\n' "$LINE" >>$FILENAME fi fi fi fi fi done
- Létrehoz egy új PersistentVolume-t a storage osztály
Ha új PersistentVolume-t szeretne létrehozni a névtérben lévő összes PersistentVolume számára, hajtsa végre a szkriptet CreatePV.sh a következő paraméterekkel:
namespace
– A fürt névteresourceStorageClass
- A faalapú tároló illesztőprogram-alapú StorageClasstargetCSIStorageClass
- A CSI-tároló illesztőprogram-alapú StorageClass, amely lehet az egyik alapértelmezett tárolási osztály, amelynek kiépítési beállítása disk.csi.azure.com vagy file.csi.azure.com. Egyéni tárolási osztályt is létrehozhat, ha a két kiépítés valamelyikére van beállítva.startTimeStamp
- Adja meg a kezdési időpont előtt PVC létrehozási idő formátumban yyy-mm-ddthh:mm:sszendTimeStamp
- Adjon meg egy befejezési időpontot yyyyy-mm-ddthh:mm:ssz formátumban.
./CreatePV.sh <namespace> <sourceIntreeStorageClass> <targetCSIStorageClass> <startTimestamp> <endTimestamp>
Frissítse az alkalmazást az új PVC használatára.
Dinamikus kötet létrehozása
Ezzel a beállítással dinamikusan hozhat létre állandó kötetet egy állandó kötet jogcíméből.
Ennek a megközelítésnek az előnyei a következők:
Ez kevésbé kockázatos, mert minden új objektum létrejön, miközben más másolatokat is megőriz pillanatképekkel.
Nem kell külön összeállítani a PV-ket, és hozzáadni a kötet nevét a PVC-jegyzékhez.
Az alábbiakat érdemes megfontolni:
Bár ez a megközelítés kevésbé kockázatos, több objektumot hoz létre, amelyek növelik a tárolási költségeket.
Az új kötet(ek) létrehozása során az alkalmazás nem érhető el.
A törlési lépéseket körültekintően kell végezni. Az ideiglenes erőforrás-zárolások az áttelepítés befejezéséig és az alkalmazás sikeres ellenőrzéséig alkalmazhatók az erőforráscsoportra.
Végezzen adatérvényesítést/-ellenőrzést, ahogy új lemezek jönnek létre a pillanatképekből.
Migrálás
A folytatás előtt ellenőrizze a következőket:
Azokban a számítási feladatokban, ahol az adatok a lemezre való írás előtt a memóriába vannak írva, le kell állítani az alkalmazást, és engedélyezni kell a memóriában lévő adatok lemezre való kiürítét.
VolumeSnapshot
osztálynak a következő YAML-példában látható módon kell léteznie:apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: custom-disk-snapshot-sc driver: disk.csi.azure.com deletionPolicy: Delete parameters: incremental: "false"
Az alábbi parancs futtatásával lekérheti egy megadott névtérben lévő összes PVC listáját a creationTimestamp szerint rendezve. Állítsa be a névteret az
--namespace
argumentum és a tényleges fürtnévtér használatával.kubectl get pvc --namespace <namespace> --sort-by=.metadata.creationTimestamp -o custom-columns=NAME:.metadata.name,CreationTime:.metadata.creationTimestamp,StorageClass:.spec.storageClassName,Size:.spec.resources.requests.storage
Ez a lépés akkor hasznos, ha nagy számú, migrálandó virtuális gépe van, és egyszerre néhányat át szeretne migrálni. A parancs futtatásával azonosíthatja, hogy mely PVC-k lettek létrehozva egy adott időkeretben. A MigrateCSI.sh szkript futtatásakor a két paraméter a kezdési és a befejezési idő, amelyek lehetővé teszik, hogy csak ebben az időszakban migrálja a PVC-ket.
Hozzon létre egy MigrateToCSI.sh nevű fájlt, és másolja a következő kódba. A szkript a következőket teszi:
- Teljes lemezes pillanatkép létrehozása az Azure CLI használatával
- Létrehoz
VolumesnapshotContent
- Létrehoz
VolumeSnapshot
- Új PVC-t hoz létre a
VolumeSnapshot
- Létrehoz egy új fájlt a fájlnévvel
<namespace>-timestamp
, amely tartalmazza a törölni kívánt régi erőforrások listáját.
#!/bin/bash #kubectl get pvc -n <namespace> --sort-by=.metadata.creationTimestamp -o custom-columns=NAME:.metadata.name,CreationTime:.metadata.creationTimestamp,StorageClass:.spec.storageClassName,Size:.spec.resources.requests.storage # TimeFormat 2022-04-20T13:19:56Z NAMESPACE=$1 FILENAME=$NAMESPACE-$(date +%Y%m%d%H%M) EXISTING_STORAGE_CLASS=$2 STORAGE_CLASS_NEW=$3 VOLUME_STORAGE_CLASS=$4 START_TIME_STAMP=$5 END_TIME_STAMP=$6 i=1 for PVC in $(kubectl get pvc -n $NAMESPACE | awk '{ print $1}'); do # Ignore first record as it contains header if [ $i -eq 1 ]; then i=$((i + 1)) else PVC_CREATION_TIME=$(kubectl get pvc $PVC -n $NAMESPACE -o jsonpath='{.metadata.creationTimestamp}') if [[ $PVC_CREATION_TIME > $START_TIME_STAMP ]]; then if [[ $END_TIME_STAMP > $PVC_CREATION_TIME ]]; then PV="$(kubectl get pvc $PVC -n $NAMESPACE -o jsonpath='{.spec.volumeName}')" RECLAIM_POLICY="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" STORAGE_CLASS="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.storageClassName}')" echo $PVC RECLAIM_POLICY="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" if [[ $STORAGE_CLASS == $EXISTING_STORAGE_CLASS ]]; then STORAGE_SIZE="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.capacity.storage}')" SKU_NAME="$(kubectl get storageClass $STORAGE_CLASS_NEW -o jsonpath='{.parameters.skuname}')" DISK_URI="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.azureDisk.diskURI}')" TARGET_RESOURCE_GROUP="$(cut -d'/' -f5 <<<"$DISK_URI")" echo $DISK_URI SUBSCRIPTION_ID="$(echo $DISK_URI | grep -o 'subscriptions/[^/]*' | sed 's#subscriptions/##g')" echo $TARGET_RESOURCE_GROUP PERSISTENT_VOLUME_RECLAIM_POLICY="$(kubectl get pv $PV -n $NAMESPACE -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" az snapshot create --resource-group $TARGET_RESOURCE_GROUP --name $PVC-$FILENAME --source "$DISK_URI" --subscription ${SUBSCRIPTION_ID} SNAPSHOT_PATH=$(az snapshot list --resource-group $TARGET_RESOURCE_GROUP --query "[?name == '$PVC-$FILENAME'].id | [0]" --subscription ${SUBSCRIPTION_ID}) SNAPSHOT_HANDLE=$(echo "$SNAPSHOT_PATH" | tr -d '"') echo $SNAPSHOT_HANDLE sleep 10 # Create Restore File cat <<EOF >$PVC-csi.yml apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotContent metadata: name: $PVC-$FILENAME spec: deletionPolicy: 'Delete' driver: 'disk.csi.azure.com' volumeSnapshotClassName: $VOLUME_STORAGE_CLASS source: snapshotHandle: $SNAPSHOT_HANDLE volumeSnapshotRef: apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot name: $PVC-$FILENAME namespace: $1 --- apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: $PVC-$FILENAME namespace: $1 spec: volumeSnapshotClassName: $VOLUME_STORAGE_CLASS source: volumeSnapshotContentName: $PVC-$FILENAME --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: csi-$PVC namespace: $1 spec: accessModes: - ReadWriteOnce storageClassName: $STORAGE_CLASS_NEW resources: requests: storage: $STORAGE_SIZE dataSource: name: $PVC-$FILENAME kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io EOF kubectl create -f $PVC-csi.yml LINE="OLDPVC:$PVC,OLDPV:$PV,VolumeSnapshotContent:volumeSnapshotContent-$FILENAME,VolumeSnapshot:volumesnapshot$FILENAME,OLDdisk:$DISK_URI" printf '%s\n' "$LINE" >>$FILENAME fi fi fi fi done
A lemezkötetek migrálásához hajtsa végre a szkriptet MigrateToCSI.sh a következő paraméterekkel:
namespace
– A fürt névteresourceStorageClass
- A faalapú tároló illesztőprogram-alapú StorageClasstargetCSIStorageClass
- A CSI-tároló illesztőprogram-alapú StorageClassvolumeSnapshotClass
- A kötet pillanatképosztályának neve. Például:custom-disk-snapshot-sc
.startTimeStamp
- Adja meg a kezdési időpontot yyyyy-mm-ddthh:mm:ssz formátumban.endTimeStamp
- Adjon meg egy befejezési időpontot yyyyy-mm-ddthh:mm:ssz formátumban.
./MigrateToCSI.sh <namespace> <sourceStorageClass> <TargetCSIstorageClass> <VolumeSnapshotClass> <startTimestamp> <endTimestamp>
Frissítse az alkalmazást az új PVC használatára.
Törölje manuálisan a régebbi erőforrásokat, köztük a fán belüli PVC-t/PV-t, a VolumeSnapshot-ot és a VolumeSnapshotContentet. Ellenkező esetben a fában lévő PVC/PC és a pillanatkép-objektumok fenntartása több költséget fog eredményezni.
Fájlmegosztási kötetek migrálása
A fáról a CSI-ra való migrálás statikus kötet létrehozásával támogatott:
- Nincs szükség az eredeti konfiguráció eltávolítására a fastruktúrájú tárolóosztály használatával.
- A kockázat alacsony, mivel csak a Kubernetes PV/PVC logikai törlését hajtja végre, a tényleges fizikai adatok nem törlődnek.
- Nem merült fel többletköltség, mivel nem kellett további Azure-objektumokat létrehoznia, például fájlmegosztásokat stb.
Migrálás
Frissítse a meglévő PV-t
ReclaimPolicy
a Törlésről a Megtartás értékre a következő parancs futtatásával:kubectl patch pv pvName -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
Cserélje le a pvName nevet a kijelölt PersistentVolume nevére. Másik lehetőségként, ha több virtuális gép esetében szeretné frissíteni a reclaimPolicy szolgáltatást, hozzon létre egy patchReclaimPVs.sh nevű fájlt, és másolja a következő kódba.
#!/bin/bash # Patch the Persistent Volume in case ReclaimPolicy is Delete namespace=$1 i=1 for pvc in $(kubectl get pvc -n $namespace | awk '{ print $1}'); do # Ignore first record as it contains header if [ $i -eq 1 ]; then i=$((i + 1)) else pv="$(kubectl get pvc $pvc -n $namespace -o jsonpath='{.spec.volumeName}')" reclaimPolicy="$(kubectl get pv $pv -n $namespace -o jsonpath='{.spec.persistentVolumeReclaimPolicy}')" echo "Reclaim Policy for Persistent Volume $pv is $reclaimPolicy" if [[ $reclaimPolicy == "Delete" ]]; then echo "Updating ReclaimPolicy for $pv to Retain" kubectl patch pv $pv -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' fi fi done
Futtassa a szkriptet a paraméterrel a
namespace
fürt névterének./PatchReclaimPolicy.sh <namespace>
megadásához.Hozzon létre egy új tárosztályt a kiépítési beállítással
file.csi.azure.com
, vagy használhatja az alapértelmezett StorageClasses egyikét a CSI-fájlkiépítési eszközzel.secretName
A meglévő PersistentVolumes-fájlok lekérése ésshareName
lekérése a következő parancs futtatásával:kubectl describe pv pvName
Hozzon létre egy új PV-t az új StorageClass, valamint a
shareName
fán belüli PV használatávalsecretName
. Hozzon létre egy azurefile-mount-pv.yaml nevű fájlt, és másolja a következő kódba. Alattcsi
, frissítésresourceGroup
,volumeHandle
ésshareName
. Csatlakoztatási beállítások esetén a fileMode és a dirMode alapértelmezett értéke 0777.Az alapértelmezett érték a
fileMode
dirMode
0777.apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: file.csi.azure.com name: azurefile spec: capacity: storage: 5Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: azurefile-csi csi: driver: file.csi.azure.com readOnly: false volumeHandle: unique-volumeid # make sure volumeid is unique for every identical share in the cluster volumeAttributes: resourceGroup: EXISTING_RESOURCE_GROUP_NAME # optional, only set this when storage account is not in the same resource group as the cluster nodes shareName: aksshare nodeStageSecretRef: name: azure-secret namespace: default mountOptions: - dir_mode=0777 - file_mode=0777 - uid=0 - gid=0 - mfsymlinks - cache=strict - nosharesock - nobrl # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
Hozzon létre egy azurefile-mount-pvc.yaml nevű fájlt egy PersistentVolumeClaim fájllal, amely a PersistentVolume-t használja az alábbi kóddal.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azurefile spec: accessModes: - ReadWriteMany storageClassName: azurefile-csi volumeName: azurefile resources: requests: storage: 5Gi
Használja a
kubectl
parancsot a PersistentVolume létrehozásához.kubectl apply -f azurefile-mount-pv.yaml
Használja a
kubectl
parancsot a PersistentVolumeClaim létrehozásához.kubectl apply -f azurefile-mount-pvc.yaml
Az alábbi parancs futtatásával ellenőrizze, hogy a PersistentVolumeClaim létrejött-e, és a PersistentVolume-hoz van-e kötve.
kubectl get pvc azurefile
A kimenet a következőhöz hasonló:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE azurefile Bound azurefile 5Gi RWX azurefile 5s
Frissítse a tároló specifikációját a PersistentVolumeClaim hivatkozásához, és frissítse a podot. Másolja például a következő kódot, és hozzon létre egy azure-files-pod.yaml nevű fájlt.
... volumes: - name: azure persistentVolumeClaim: claimName: azurefile
A pod specifikációja nem frissíthető a helyén. A pod törléséhez és újbóli létrehozásához használja az alábbi
kubectl
parancsokat.kubectl delete pod mypod
kubectl apply -f azure-files-pod.yaml
Következő lépések
- A tárolási ajánlott eljárásokkal kapcsolatos további információkért tekintse meg az Azure Kubernetes Service tárolási és biztonsági mentési ajánlott eljárásait.
- Az újonnan migrált CSI Driver-alapú virtuális gépek védelméhez készítsen biztonsági másolatot az Azure Backup for AKS használatával.
Azure Kubernetes Service