Configurazione delle istantanee con il componente aggiuntivo del cluster Block Storage for VPC
Cloud virtuale privato
Block Storage for VPC Le istantanee dei volumi offrono un metodo standardizzato per copiare il contenuto di un volume in un determinato momento senza creare un volume completamente nuovo. Per ulteriori informazioni sulle istantanee, vedere Come funzionano le istantanee. Per ulteriori informazioni su Block Storage for VPC, vedi Informazioni suBlock Storage for VPC.
Per impostazione predefinita, il componente aggiuntivo del cluster Block Storage for VPC crea volumi e snapshot nello stesso gruppo di risorse VPC in cui viene distribuito il cluster. Tuttavia, a partire dalla versione del componente aggiuntivo
5.2.46 e successive, è possibile creare istantanee in un gruppo di risorse diverso specificando il parametro resourceGroup nel proprio VolumeSnapshotClass. Per ulteriori informazioni, vedere Creazione di istantanee in un gruppo di risorse diverso.
Creazione di un'applicazione
Crea un'attestazione del volume persistente (o PVC, Persistent Volume Claim) di esempio e distribuisci un pod che fa riferimento all'attestazione.
-
Verificare che lo stato del componente aggiuntivo sia
normale che lo stato siaReady.ibmcloud oc cluster addon ls --cluster CLUSTER-IDName Version Health State Health Status vpc-block-csi-driver 5.2 normal Addon Ready. For more info: http://ibm.biz/addon-state (H1500) -
Verificare che i pod del driver siano distribuiti e che lo stato sia
Running.oc get pods -n kube-system | grep vpc-block-csiOutput di esempio
ibm-vpc-block-csi-controller-0 7/7 Running 0 77s ibm-vpc-block-csi-node-56c85 4/4 Running 0 77s ibm-vpc-block-csi-node-87j2t 4/4 Running 0 77s ibm-vpc-block-csi-node-cmh2h 4/4 Running 0 77s -
Creare un PVC.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: csi-block-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: ibmc-vpc-block-5iops-tieroc create -f pvc.yaml -
Verifica che la PVC sia stata creata e che si trovi in uno stato
Bound.oc get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE csi-block-pvc Bound pvc-0798b499-0b61-4f57-a184-4caeb7b9298d 10Gi RWO ibmc-vpc-block-5iops-tier 4m22s -
Creare un file di configurazione YAML per una distribuzione che monti il PVC creato.
apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: my-deployment spec: replicas: 1 selector: matchLabels: app: my-deployment template: metadata: labels: app: my-deployment spec: containers: - image: nginx # Your containerized app image name: container-name volumeMounts: - mountPath: /myvolumepath # Mount path for PVC name: my-vol # Volume mount name volumes: - name: my-vol # Volume resource name persistentVolumeClaim: claimName: csi-block-pvc # The name of the PVC you created earlieroc create -f pod.yaml -
Verificare che il pod sia in esecuzione nel cluster.
oc get podsNAME READY STATUS RESTARTS AGE my-deployment-58dd7c89b6-8zdcl 1/1 Running 0 4m50s -
Ora che hai creato il pod, accedi al pod e crea un file di testo da utilizzare per l'istantanea.
oc exec -it POD_NAME /bin/bashOutput di esempio
root@my-deployment-58dd7c89b6-8zdcl:/# cd myvolumepath/ root@my-deployment-58dd7c89b6-8zdcl:/myvolumepath# echo "hi" > new.txt root@my-deployment-58dd7c89b6-8zdcl:/myvolumepath# exit
Creazione di un'istantanea del volume
Dopo aver creato una distribuzione e una PVC, puoi creare le risorse di istantanea del volume.
È possibile creare istantanee solo quando un volume è collegato a un pod.
-
Assicurarsi di disporre delle autorizzazioni di Share Snapshot Operator in IAM.
-
Crea una risorsa di istantanea del volume nel tuo cluster utilizzando la classe di istantanea
ibmc-vpcblock-snapshotdistribuita quando hai abilitato il componente aggiuntivo. Salvate la seguente configurazione diVolumeSnapshotin un file chiamatosnapvol.yaml.apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: snapshot-csi-block-pvc spec: volumeSnapshotClassName: ibmc-vpcblock-snapshot source: persistentVolumeClaimName: csi-block-pvcoc create -f snapvol.yaml -
Verificare che l'istantanea sia pronta per l'uso.
oc get volumesnapshotsEsempio di output dove
READYTOUSEètrue:NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE snapshot-csi-block-pvc true csi-block-pvc 1Gi ibmc-vpcblock-snapshot snapcontent-9c374fbf-43a6-48d6-afc5-e76e1ab7c12b 18h 18h
Creazione di istantanee in un gruppo di risorse differente
A partire da Block Storage for VPC cluster add-on versione 5.2.46 e successive, è possibile creare istantanee di volumi in un gruppo di risorse diverso dal gruppo di risorse del cluster. Questa funzione offre una maggiore flessibilità nell'organizzazione delle risorse, nella gestione delle quote e nel controllo degli accessi.
- Requisiti di versione: Questa funzione è supportata solo nella versione del componente aggiuntivo 5.2.46 e successive.
- Comportamento predefinito: Se non si specifica un parametro
resourceGroupo se si specifica una stringa vuota, le istantanee vengono create nel gruppo di risorse del cluster.
Prerequisiti
Prima di iniziare, assicurarsi di disporre delle seguenti autorizzazioni in IAM:
- Servizi infrastrutturali VPC (è): Redattore e scrittore
- Kubernetes Service (container-kubernetes): Operatore
- Gruppo di risorse: Visualizzatore per ogni gruppo di risorse in cui si desidera creare le istantanee
Creazione di un'opzione personalizzata VolumeSnapshotClass
Per creare istantanee in un gruppo di risorse diverso, è necessario creare un VolumeSnapshotClass personalizzato che specifichi l'ID del gruppo di risorse di destinazione.
-
Ottenere l'ID del gruppo di risorse in cui si desidera creare l'istantanea.
ibmcloud resource groups -
Creare un file di configurazione
VolumeSnapshotClass. Salvare il seguente YAML in un file chiamatovpc-snap-custom-rg.yaml. Sostituire<RESOURCE_GROUP_ID>con l'ID del gruppo di risorse di destinazione.apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: vpc-snap-custom-rg driver: vpc.block.csi.ibm.io deletionPolicy: Delete parameters: resourceGroup: <RESOURCE_GROUP_ID>Il parametro
resourceGroupdeve essere l'ID del gruppo di risorse, non il nome del gruppo di risorse. -
Creare il sito
VolumeSnapshotClassnel cluster.oc create -f vpc-snap-custom-rg.yaml -
Verificare che il sito
VolumeSnapshotClasssia stato creato.oc get volumesnapshotclass
Creazione di un'istantanea con un gruppo di risorse personalizzato
Dopo aver creato il sito VolumeSnapshotClass personalizzato, è possibile creare istantanee che fanno riferimento ad esso.
-
Creare un file di configurazione
VolumeSnapshotche faccia riferimento alla classe snapshot personalizzata. Salvare il seguente YAML in un file chiamatosnapshot-custom-rg.yaml.apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: snapshot-custom-rg spec: volumeSnapshotClassName: vpc-snap-custom-rg source: persistentVolumeClaimName: csi-block-pvc -
Creare l'istantanea.
oc create -f snapshot-custom-rg.yaml -
Verificare che l'istantanea sia pronta per l'uso.
oc get volumesnapshots -
Verificare che l'istantanea sia stata creata nel gruppo di risorse di destinazione utilizzando la CLI IBM Cloud.
ibmcloud target -g <RESOURCE_GROUP_NAME> ibmcloud is snapshots
Ripristino da un'istantanea del volume
Dopo aver distribuito le risorse dell'istantanee, è possibile ripristinare i dati su un nuovo volume utilizzando l'istantanea. La creazione di una PVC esegue in modo dinamico il provisioning di un nuovo volume con i dati dell'istantanea.
-
Crea una seconda PVC che fa riferimento alla tua istantanea del volume.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: restore-pvc spec: storageClassName: ibmc-vpc-block-5iops-tier dataSource: name: snapshot-csi-block-pvc kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Verifica che la PVC sia stata creata e che si trovi in uno stato
Bound.oc get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE restore-pvc Bound pvc-4ede7630-5a49-4bae-b34d-dc528acfb884 10Gi RWO ibmc-vpc-block-5iops-tier 18h -
Creare un secondo file di configurazione YAML per una distribuzione che monti il PVC creato.
apiVersion: apps/v1 kind: Deployment metadata: name: podtwo labels: app: podtwo spec: replicas: 1 selector: matchLabels: app: podtwo template: metadata: labels: app: podtwo spec: containers: - image: nginx # Your containerized app image name: container-name volumeMounts: - mountPath: /myvolumepath # Mount path for pvc from container name: my-vol # Volume mount name volumes: - name: my-vol # Volume resource name persistentVolumeClaim: claimName: restore-pvc # The name of the PVC that you created earlieroc create -f podtwo.yaml -
Verifica che il pod sia stato creato.
oc get podsNAME READY STATUS RESTARTS AGE POD_NAME 1/1 Running 0 30m POD2_NAME 1/1 Running 0 46h -
Accedi al pod appena creato e verifica che il file di testo di esempio che hai creato in precedenza sia salvato nel nuovo pod.
oc exec -it POD_NAME /bin/bash root@POD_NAME :/# cd myvolumepath/ root@POD_NAME :/myvolumepath# ls lost+found new.txt root@POD_NAME :/myvolumepath# cat new.txtOutput di esempio
hi
Disattivazione delle istantanee
Per impostazione predefinita, la funzionalità di istantanea è abilitata quando si utilizza Block Storage for VPC. Questa funzione può essere disattivata nella configmap addon-vpc-block-csi-driver-configmap nello spazio dei nomi
kube-system modificando IsSnapshotEnabled in false. Tenere presente che con questa modifica nella configmap, tutte le istantanee create hanno esito negativo con il messaggio:CreateSnapshot functionality is disabled.
-
Salvare la configmap corrente dal cluster alla macchina locale.
oc get cm -n kube-system addon-vpc-block-csi-driver-configmap -o yaml >> snapshotconfigmap.yaml -
Modificare il parametro
IsSnapshotEnabledinfalse. -
Salvare il file e applicare le modifiche.
oc apply -f snapshotconfigmap.yaml
Passi successivi
Distribuire il webhook di convalida istantanea per convalidare l'input utente. Per ulteriori informazioni, vedi Distribuzione del webhook di convalida dell'istantanea.
Risoluzione dei problemi delle istantanee
Esaminare i seguenti argomenti relativi alla risoluzione dei problemi.