Configurazione di Block Storage for VPC
Block Storage for VPC fornisce uno storage di dati ad alte prestazioni montato su hypervisor per le istanze di server virtuali che possono essere fornite all'interno di una VPC.
Puoi scegliere tra i livelli di archiviazione predefiniti con dimensioni in GB e IOPS che soddisfano i requisiti dei tuoi carichi di lavoro. Per appurare se Block Storage for VPC è l'opzione di archiviazione giusta per te, vedi Scelta di una soluzione di archiviazione. Per informazioni sui prezzi, vedi Prezzi per Block Storage for VPC.
- Il componente aggiuntivo cluster Block Storage for VPC è abilitato per impostazione predefinita nei cluster VPC.
- Se disattivi Block Storage for VPC l'add-on, questo rimarrà disattivato finché non lo riattiverai. Non è abilitato quando si aggiorna o si aggiorna il master del cluster.
Introduzione rapida per IBM Cloud Block Storage for VPC
In questa guida rapida, si crea un volume 10Gi 5IOPS tier Block Storage for VPC nel cluster creando un PVC per il provisioning dinamico del volume. Quindi, crei una distribuzione dell'applicazione che monta la tua PVC.
Ora è possibile scegliere una classe di archiviazione di seconda generazione.
I Block Storage for VPC volumi possono essere montati da più pod, purché tali pod siano pianificati sullo stesso nodo.
-
Crea un file per la tua PVC e denominalo
pvc.yaml. Scegliete tra una classe di archiviazione di prima generazione e una di seconda generazione.Esempio di prima generazione che utilizza la classe di archiviazione
ibmc-vpc-block-5iops-tier:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: ibmc-vpc-block-5iops-tier accessModes: - ReadWriteOnce resources: requests: storage: 10GiEsempio di seconda generazione che utilizza la classe di archiviazione
ibmc-vpc-block-sdp:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: ibmc-vpc-block-sdp accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Crea la PVC nel tuo cluster.
kubectl apply -f pvc.yaml -
Dopo aver collegato la tua PVC, crea una distribuzione dell'applicazione che utilizza tale PVC. Crea un file per la tua distribuzione e denominalo
deployment.yaml.apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: my-app spec: replicas: 1 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - image: ngnix # Your containerized app image. name: my-container volumeMounts: - name: my-volume mountPath: /mount-path volumes: - name: my-volume persistentVolumeClaim: claimName: my-pvc -
Crea la distribuzione nel tuo cluster.
kubectl apply -f deployment.yaml
Per ulteriori informazioni, vedi i seguenti link.
Aggiunta di Block Storage for VPC alle tue applicazioni
Scegli il tuo profilo Block Storage for VPC e crea un'attestazione del volume persistente per eseguire dinamicamente il provisioning di Block Storage for VPC per il tuo cluster. Il provisioning dinamico crea automaticamente il volume persistente corrispondente e ordina il dispositivo di archiviazione fisica nel tuo account IBM Cloud.
-
Decidi in merito al profilo di Block Storage for VPC che risponde meglio ai requisiti di capacità e prestazioni che desideri.
-
Seleziona la classe di archiviazione corrispondente per il tuo profilo di Block Storage for VPC.
Tutte le classi di archiviazione predefinite IBM configurano Block Storage for VPC con un file system
ext4per impostazione predefinita. Se vuoi utilizzare un file system differente, come ad esempioxfsoext3, crea una classe di archiviazione personalizzata.- 10 IOPS/GB:
ibmc-vpc-block-10iops-tieroibmc-vpc-block-retain-10iops-tier - 5 IOPS/GB:
ibmc-vpc-block-5iops-tieroibmc-vpc-block-retain-5iops-tier - 3 IOPS/GB:
ibmc-vpc-block-general-purposeoibmc-vpc-block-retain-general-purpose - Personalizzato:
ibmc-vpc-block-customoibmc-vpc-block-retain-custom
- 10 IOPS/GB:
-
Decidi in merito alla tua configurazione di Block Storage for VPC.
- Scegli una dimensione per la tua archiviazione. Assicurati che la dimensione sia supportata dal profilo di Block Storage for VPC che hai scelto.
- Scegli se vuoi mantenere i tuoi dati dopo l'eliminazione del cluster o dell'attestazione del volume persistente (PVC, persistent volume claim).
- Se vuoi conservare i tuoi dati, scegli una classe di archiviazione
retain. Quando elimini la PVC, viene eliminata solo la PVC. Il volume persistente (o PV, Persistent Volume), il dispositivo di archiviazione fisico nel tuo account IBM Cloud e i tuoi dati permangono. Per riacquisire l'archiviazione e utilizzarla di nuovo nel tuo cluster, devi rimuovere il PV e attenerti alla procedura per utilizzare il Block Storage for VPC esistente. - Se vuoi che il PV, i dati e il tuo dispositivo Block Storage for VPC fisico vengano eliminati quando elimini la PVC, scegli una classe di archiviazione senza
retain.
- Se vuoi conservare i tuoi dati, scegli una classe di archiviazione
-
Crea un file di configurazione per definire la tua attestazione del volume persistente (o PVC, persistent volume claim) e salva la configurazione come un file YAML.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> # Enter a name for your PVC. spec: accessModes: - <access-mode> # ReadWriteOnce or ReadWriteOncePod resources: requests: storage: 10Gi # Enter the size. Make sure that the size is supported in the profile that you chose. storageClassName: <storage_class> # Enter the storage class name that you selected earlier. -
Crea la PVC nel tuo cluster.
kubectl apply -f pvc.yaml -
Verifica che la tua PVC sia stata creata e associata al PV. Questo processo può richiedere qualche minuto.
kubectl describe pvc <pvc_name>Output di esempio
Name: mypvv Namespace: default StorageClass: ibmc-vpc-block-5iops-tier Status: Bound Volume: Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"csi-block-pvc-good","namespace":"default"},"spec":{... volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io Finalizers: [kubernetes.io/pvc-protection] Capacity: 10Gi Access Modes: VolumeMode: Filesystem Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ExternalProvisioning 9s (x3 over 18s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "vpc.block.csi.ibm.io" or manually created by system administrator Mounted By: <none> -
Crea un file di configurazione di distribuzione per la tua applicazione e monta la PVC sulla tua applicazione.
apiVersion: apps/v1 kind: Deployment metadata: name: <deployment_name> labels: app: <deployment_label> spec: selector: matchLabels: app: <app_name> template: metadata: labels: app: <app_name> spec: containers: - image: <image_name> name: <container_name> volumeMounts: - name: <volume_name> mountPath: /<file_path> volumes: - name: <volume_name> persistentVolumeClaim: claimName: <pvc_name>labels.app- Nella sezione metadata, immetti un'etichetta per la distribuzione.
matchLabels.appelabels.app- Nelle sezioni spec selector e template metadata, immetti un'etichetta per la tua applicazione.
image- Specifica il nome dell'immagine del contenitore che vuoi utilizzare. Per elencare le immagini disponibili nel tuo account IBM Cloud Container Registry, esegui
ibmcloud cr image-list. name- Specifica il nome del contenitore che vuoi distribuire nel tuo pod.
mountPath- Nella sezione container volume mounts, specifica il percorso assoluto della directory in cui viene montata la PVC all'interno del contenitore.
name- Nella sezione container volume mounts, immetti il nome del volume per montare il tuo pod. Puoi immettere qualsiasi nome tu voglia.
name- Nella sezione volumes, immetti il nome del volume da montare sul tuo pod. In genere questo nome è lo stesso di
volumeMounts.name. claimName- Nella sezione volumes persistent volume claim, immetti il nome della PVC che hai creato in precedenza.
-
Crea la distribuzione nel tuo cluster.
kubectl apply -f deployment.yaml -
Verifica che la PVC sia stata montata correttamente sulla tua applicazione. Potrebbe volerci qualche minuto perché i tuoi pod entrino in uno stato Running.
Durante la distribuzione della tua applicazione, potresti vedere degli errori
Unable to mount volumesintermittenti nella sezione Events del tuo output della CLI. Il componente aggiuntivo del cluster Block Storage for VPC riprova automaticamente a montare lo storage sulle applicazioni. Attendi qualche minuto perché l'archiviazione venga montata sulla tua applicazione.kubectl describe deployment <deployment_name>Output di esempio
... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: mypvc ReadOnly: false
Utilizzo di un'istanza Block Storage for VPC esistente
Se hai un dispositivo Block Storage for VPC fisico esistente che vuoi usare nel tuo cluster, puoi creare manualmente il PV e la PVC per eseguire in modo statico il provisioning dell'archiviazione.
Puoi collegare un volume a un solo nodo di lavoro. Affinché il collegamento abbia esito positivo, assicurati che il volume si trovi nella stessa zona del nodo di lavoro.
-
Determina il volume che vuoi collegare a un nodo di lavoro nel tuo cluster VPC. Prendi nota dell'ID volume.
ibmcloud is volumes -
Elenca i dettagli del tuo volume. Prendi nota dei valori Size, Zone e IOPS. Questi valori vengono utilizzati per creare il tuo PV.
ibmcloud is volume <volume_id> -
Richiama un elenco di nodi di lavoro nel tuo cluster VPC. Prendi nota della Zona del nodo di lavoro che si trova nella stessa zona del tuo volume di archiviazione.
ibmcloud ks worker ls -c <cluster_name> -
Facoltativo: se hai eseguito il provisioning della tua istanza Block Storage for VPC fisica utilizzando una classe di archiviazione
retain, il PV e l'archiviazione fisica non vengono rimossi quando rimuovi la PVC. Per utilizzare il tuo dispositivo Block Storage for VPC fisico nel tuo cluster, devi prima rimuovere il PV esistente.-
Elenca i PV nel tuo cluster e cerca il PV che appartiene al tuo dispositivo Block Storage for VPC. Il PV è in uno stato
released.kubectl get pv -
Rimuovi il PV.
kubectl delete pv <pv_name>
-
-
Crea un file di configurazione per il tuo PV. Includi i valori ID, Size, Zone e IOPS che hai richiamato in precedenza.
apiVersion: v1 kind: PersistentVolume metadata: name: <pv_name> # Example: my-persistent-volume spec: accessModes: - ReadWriteOnce capacity: storage: <vpc_block_storage_size> # Example: 20Gi csi: driver: vpc.block.csi.ibm.io fsType: ext4 volumeAttributes: iops: "<vpc_block_storage_iops>" # Example: "3000" volumeId: <vpc_block_storage_ID> # Example: a1a11a1a-a111-1111-1a11-1111a11a1a11 zone: "<vpc_block_zone>" # Example: "eu-de-3" region: "<vpc_block_region>" volumeHandle: <vpc_block_storage_ID> nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: failure-domain.beta.kubernetes.io/zone operator: In values: - <worker_node_zone> # Example: eu-de-3 - key: failure-domain.beta.kubernetes.io/region operator: In values: - <worker_node_region> # Example: eu-de - key: kubernetes.io/hostname operator: In values: - <worker_node_primary_IP> persistentVolumeReclaimPolicy: Retain storageClassName: "" volumeMode: Filesystemname- Nella sezione metadata, immetti un nome per il tuo PV.
storage- Nella sezione spec capacity, immetti la dimensione del tuo volume di Block Storage for VPC in gigabyte (Gi) che hai richiamato in precedenza. Ad esempio, se la dimensione del dispositivo è di 100 GB, inserire
100Gi. iops- Nella sezione spec CSI volume attributes, immetti il numero massimo di IOPS del volume di Block Storage for VPC che hai richiamato in precedenza.
zone- Nella sezione spec CSI volume attributes, immetti la zona di blocco VPC che corrisponde all'ubicazione che hai richiamato in precedenza. Ad esempio, se la vostra località è
Washington DC-1, utilizzateus-east-1come zona. Per elencare le zone disponibili, eseguiibmcloud is zones. Per trovare una panoramica delle zone e delle ubicazioni VPC disponibili, vedi Creazione di una VPC in una regione differente. Indicare il parametro "region" quando è specificato "zone". region- L'area del nodo worker a cui si vuole collegare lo storage.
worker_node_primary_IP- L'IP primario del nodo di lavoro a cui vuoi collegare l'archiviazione. Puoi trovare l'indirizzo IP primario del nodo di lavoro eseguendo
ibmcloud ks worker ls. volumeIdespec.csi.volumeHandle- Nella sezione spec CSI volume attributes, immetti l'ID del volume di Block Storage for VPC che hai richiamato in precedenza.
storageClassName- Per il nome della classe di archiviazione nella specifica, immetti una stringa vuota.
matchExpressions- Nella sezione spec node affinity, immetti i termini del selettore del nodo in modo che corrispondano alla zona. Per la chiave, immettere
failure-domain.beta.kubernetes.io/zone. Per il valore, immetti la zona del tuo nodo di lavoro in cui vuoi collegare l'archiviazione. matchExpressions- Nella sezione spec node affinity, immetti i termini del selettore del nodo in modo che corrispondano alla regione. Per la chiave, immettere
failure-domain.beta.kubernetes.io/region. Per il valore, immetti la regione del nodo di lavoro in cui vuoi collegare l'archiviazione.
-
Crea il PV nel tuo cluster.
kubectl apply -f pv.yaml -
Verifica che il PV venga creato nel tuo cluster.
kubectl get pv -
Crea un altro file di configurazione per la tua PVC. Affinché la PVC corrisponda al PV che hai creato in precedenza, devi scegliere lo stesso valore per la dimensione dell'archiviazione e la modalità di accesso. Nel tuo campo della classe di archiviazione, immetti un valore stringa vuoto per una corrispondenza al tuo PV. Se uno di questi campi non corrisponde al PV, vengono creati automaticamente un nuovo PV e un'istanza Block Storage for VPC tramite il provisioning dinamico.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> spec: accessModes: - ReadWriteOnce resources: requests: storage: <vpc_block_storage_size> storageClassName: "" -
Crea la tua PVC.
kubectl apply -f pvc.yaml -
Verifica che la tua PVC sia stata creata e collegata al PV che hai creato in precedenza. Questo processo può richiedere qualche minuto.
kubectl describe pvc <pvc_name>
- Crea una distribuzione o un pod che utilizza la tua PVC.
apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment_name>
labels:
app: <deployment_label>
spec:
selector:
matchLabels:
app: <app_name>
template:
metadata:
labels:
app: <app_name>
spec:
containers:
- image: <image_name>
name: <container_name>
volumeMounts:
- name: <volume_name>
mountPath: /<file_path>
volumes:
- name: <volume_name>
persistentVolumeClaim:
claimName: <pvc_name>
nodeSelector:
kubernetes.io/hostname: "<worker_node_primary_IP>"
Aggiornamento del componente aggiuntivo del cluster Block Storage for VPC
È possibile aggiornare il componente Block Storage for VPC aggiuntivo del cluster utilizzando il addon update comando.
Prima di aggiornare il componente aggiuntivo, consultare il log delle modifiche.
Prima di aggiornare a una release '5.x da una release precedente, non è necessario avere snapshot di volume in stato 'failure. Per ulteriori informazioni, consulta Perché non riesco a eliminare le mie risorse di Block Storage for VPC snapshot del volume?.
-
Verifica se è disponibile un aggiornamento. Se è disponibile, la versione del plugin viene contrassegnata con un asterisco e viene visualizzata la versione più recente. Prendi nota dell'ultima versione poiché questo valore verrà utilizzato in seguito.
ibmcloud ks cluster addons --cluster <cluster_name_or_ID>Output di esempio
Name Version Health State Health Status vpc-block-csi-driver 1.0.0* (2.0.0 latest) normal Addon Ready -
Aggiornare il componente aggiuntivo. Notare che i comandi di aggiornamento sono diversi a seconda della versione installata.
5.0 e versioni successive Eseguire il comando
addon update.ibmcloud ks cluster addon update vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]Tutte le versioni precedenti alla versione 5.0 Disabilita e abilita il componente aggiuntivo.
ibmcloud ks cluster addon disable vpc-block-csi-driver --cluster CLUSTER [-f] [-q]ibmcloud ks cluster addon enable vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y] -
Verifica che lo stato del componente aggiuntivo sia
Addon Ready. Perché il componente aggiuntivo sia pronto potrebbero essere richiesti alcuni minuti.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>Output di esempio
Name Version Health State Health Status vpc-block-csi-driver 2.0.0 normal Addon ReadySe si utilizza una classe di archiviazione predefinita diversa dalla classe
ibmc-vpc-block-10iops-tierdi archiviazione, è necessario modificare le impostazioni predefinite della classe diaddon-vpc-block-csi-driver-configmapConfigMap archiviazione in. Per ulteriori informazioni, consultare Modifica della classe di memoria predefinita. -
Se hai creato le tue classi di archiviazione in base alle classi di archiviazione Block Storage for VPC predefinite, devi ricreare tali classi di archiviazione per aggiornare i parametri. Per ulteriori informazioni, vedi Nuova creazione delle tue proprie classi di archiviazione dopo l'aggiornamento alla versione 4.2.
Ricreazione delle proprie classi di archiviazione dopo l'aggiornamento alla versione 4.2
Con la versione 4.2, i parametri predefiniti per le classi di archiviazione sono cambiati. I parametri sizeRange o iopsRange non vengono più utilizzati. Se è stata creata una delle proprie classi di memoria che utilizzano
questi parametri, è necessario modificare le proprie classi di memoria per rimuovere tali parametri. Per modificare i parametri nelle proprie classi di archiviazione, è necessario eliminarli e ricrearli. In precedenza, sizeRange e iopsRange venivano forniti come informazioni di riferimento per ciascuna classe di archiviazione. Con la versione 4.2, questi riferimenti sono stati rimossi. Ora, per informazioni sui profili di archiviazione blocchi, le dimensioni
e gli IOP, vedi il riferimento profili di archiviazione blocchi.
-
Per trovare i dettagli delle tue proprie classi di archiviazione, immetti il seguente comando.
kubectl describe sc STORAGECLASS -
Se la classe di archiviazione utilizza
sizeRangeoiopsRange, richiamare la classe di archiviazione YAML e salvarla in un file.kubectl get sc STORAGECLASS -o yaml -
Nel file salvato dall'output del comando precedente, rimuovere i parametri
sizeRangeoiopsRange. -
Elimina la classe di archiviazione dal tuo cluster.
kubectl delete sc STORAGECLASS -
Ricrea la classe di archiviazione nel tuo cluster utilizzando il file che hai creato precedentemente.
kubectl apply -f custom-storage-class.yaml
Configurazione della crittografia per Block Storage for VPC
Utilizza un provider di servizi di gestione delle chiavi (KMS), come IBM® Key Protect, per creare una chiave root privata da utilizzare nella tua Block Storage for VPC istanza per crittografare i dati mentre vengono scritti nell'archivio. Dopo aver creato la chiave root privata, creare la propria classe di archiviazione o un segreto Kubernetes con la chiave root e quindi utilizzare questa classe di archiviazione o questo segreto per eseguire il provisioning dell'istanza Block Storage for VPC.
L'abilitazione della crittografia Block Storage for VPC influisce sulle prestazioni di circa il 20%. Tuttavia, l'impatto esatto dipende dalla configurazione del tuo nodo di lavoro e del volume di archiviazione. Considerare la possibilità di consentire impatti sulle prestazioni quando si abilita la cifratura.
-
Creare un'istanza del provider KMS che si desidera utilizzare.
-
Creare una chiave principale nell'istanza KMS.
- Key Protect chiave principale.
- Hyper Protect Crypto Services chiave di root. Per impostazione predefinita, la chiave root viene creata senza una data di scadenza.
-
Impostare l'autorizzazione da servizio a servizio. Autorizza Block Storage for VPC ad accedere a IBM® Key Protect. Assicurarsi di dare a Block Storage for VPC almeno
Readerl'accesso alla propria istanza KMS. -
Decidi se vuoi archiviare il CRN della chiave root Key Protect in una classe di archiviazione personalizzata o in un segreto Kubernetes. Quindi, segui la procedura per creare una classe di archiviazione personalizzata o un segreto Kubernetes.
Classe di archiviazione personalizzata di esempio.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage_class_name> # Enter a name for your storage class. provisioner: vpc.block.csi.ibm.io parameters: profile: "5iops-tier" csi.storage.k8s.io/fstype: "ext4" billingType: "hourly" encrypted: "true" encryptionKey: "<encryption_key>" resourceGroup: "" zone: "" tags: "" generation: "gc" classVersion: "1" reclaimPolicy: "Delete"encrypted- Nei parametri, inserire
trueper creare una classe di archiviazione che imposti la crittografia per i volumi Block Storage for VPC. Se si imposta questa opzione sutrue, è necessario fornire la chiave CRN della propria istanza del servizio Key Protect che si vuole utilizzare inparameters.encryptionKey. encryptionKey- Nei parametri, immetti il CRN della chiave root che hai richiamato in precedenza.
Esempio Kubernetes segreto.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: encrypted: <true_or_false> data encryptionKey: <encryption_key>name- Immetti un nome per il tuo segreto.
namespace- Immetti lo spazio dei nomi in cui vuoi creare il tuo segreto.
encrypted- Nei parametri, immettere
trueper impostare la crittografia dei volumi Block Storage for VPC. encryptionKey- Nei parametri, immetti il CRN della chiave root della tua istanza del servizio Key Protect che vuoi utilizzare per crittografare il tuo volume di Block Storage for VPC. Per utilizzare la chiave radice CRN in un segreto, occorre prima convertirla
in base64 eseguendo
echo -n "<root_key_CRN>" | base64.
-
Seguire i passaggi da 4 a 9 in Aggiunta di Block Storage for VPC alle applicazioni per creare un PVC con la classe di archiviazione personalizzata per il provisioning di Block Storage for VPC, configurato per la crittografia con la chiave root di Key Protect. Monta quindi questa archiviazione in un pod dell'applicazione.
La tua applicazione potrebbe impiegare qualche minuto a montare l'archiviazione ed entrare in uno stato Running.
-
Verifica che i tuoi dati siano crittografati. Elenca i tuoi volumi di Block Storage for VPC e prendi nota dell'ID dell'istanza che hai creato. Il nome (Name) dell'istanza di archiviazione è uguale al nome del PV che era stato creato automaticamente quando hai creato la PVC.
ibmcloud is volsOutput di esempio
ID Name Status Capacity IOPS Profile Attachment type Created Zone Resource group a395b603-74bf-4703-8fcb-b68e0b4d6960 pvc-479d590f-ca72-4df2-a30a-0941fceeca42 available 10 3000 5iops-tier data 2019-08-17T12:29:18-05:00 us-south-1 a8a12accd63b437bbd6d58fb6a462ca7 -
Utilizzando l'ID del volume, elenca i dettagli della tua istanza Block Storage for VPC per assicurarti che la tua chiave root Key Protect sia archiviata nell'istanza di archiviazione. Puoi trovare la chiave root nel campo Encryption key del tuo output della CLI.
ibmcloud is vol <volume_ID>Output di esempio
ID a395b603-74bf-4703-8fcb-b68e0b4d6960 Name pvc-479d590f-ca72-4df2-a30a-0941fceeca42 Status available Capacity 10 IOPS 3000 Profile 5iops-tier Encryption key crn:v1:bluemix:public:kms:us-south:a/6ef045fd2b43266cfe8e6388dd2ec098:53369322-958b-421c-911a-c9ae8d5156d1:key:47a985d1-5f5e-4477-93fc-12ce9bae343f Encryption user_managed Resource group a8a12accd63b437bbd6d58fb6a462ca7 Created 2019-08-17T12:29:18-05:00 Zone us-south-1 Volume Attachment Instance Reference
Personalizzazione delle impostazioni di archiviazione predefinite
È possibile modificare alcune impostazioni predefinite del PVC utilizzando una classe di archiviazione personalizzata o un segreto Kubernetes per creare Block Storage for VPC con le impostazioni personalizzate.
- Qual è il vantaggio di utilizzare un segreto e di specificare i parametri in una classe di archiviazione personalizzata?
- L'amministratore del cluster può creare una classe di archiviazione personalizzata quando vuole che tutti i PVC creati dagli utenti del cluster siano forniti con una configurazione specifica e non vuole consentire agli utenti del cluster di ignorare la configurazione predefinita.
- Tuttavia, quando sono necessarie più configurazioni e non vuoi creare una classe di archiviazione personalizzata per ogni possibile configurazione PVC, puoi creare una classe di archiviazione personalizzata con delle impostazioni PVC predefinite e un riferimento a un segreto Kubernetes generico. Se i tuoi utenti del cluster devono sovrascrivere le impostazioni della tua classe di archiviazione personalizzata, possono farlo creando un segreto Kubernetes che ospita le loro impostazioni personalizzate.
Quando vuoi configurare la crittografia per la tua istanza di Block Storage for VPC, puoi anche utilizzare un segreto Kubernetes se vuoi codificare il CRN della chiave root Key Protect in base64 anziché fornire la chiave direttamente nella classe di archiviazione personalizzata.
Modifica della classe di archiviazione predefinita
Con la versione 4.2 il componente Block Storage for VPC aggiuntivo cluster imposta la classe di archiviazione predefinita sulla ibmc-vpc-block-10iops-tier classe. Se hai una classe di archiviazione predefinita diversa da ibmc-vpc-block-10iops-tier e le tue PVC utilizzano la classe di archiviazione predefinita, ciò può risultare in più classi di archiviazione predefinite che possono causare errori di creazione della PVC. Per utilizzare una classe di memoria predefinita diversa da ibmc-vpc-block-10iops-tier,
è possibile aggiornare addon-vpc-block-csi-driver-configmap per modificare IsStorageClassDefault in false.
La classe di archiviazione predefinita per il componente aggiuntivo del cluster Block Storage for VPC è la classe di archiviazione ibmc-vpc-block-10iops-tier.
-
Modifica
addon-vpc-block-csi-driver-configmapkubectl edit cm addon-vpc-block-csi-driver-configmap -n kube-system -
Modificare l'impostazione
IsStorageClassDefaultinfalse. -
Salvare ed uscire.
-
Attendere 15 minuti e verificare la modifica ottenendo i dettagli della classe di memoria
ibmc-vpc-block-10iops-tier.kubectl get sc ibmc-vpc-block-10iops-tier -o yaml
Creazione della tua classe di memoria
Crea la tua classe di archiviazione personalizzata con le impostazioni preferite per la tua Block Storage for VPC istanza. Utilizzando il profilo SDP, è possibile specificare la capacità e il limite massimo di throughput.
I profili di prestazioni definiti SSD (SDP) sono disponibili a Dallas, Francoforte, Londra, Madrid, Osaka, San Paolo, Sydney, Tokyo, Toronto e Washington D.C. La creazione di snapshot per i profili di prestazioni definiti per SSD è disponibile a Dallas, Francoforte, Tokyo e Washington. D.C
È possibile creare la propria classe di archiviazione se si desidera:
- Impostare un valore IOPs personalizzato.
- Configura Block Storage for VPC con un tipo di file system diverso da
ext4. - Impostare la codifica.
- Impostazione delle prestazioni definite da SSD.
Prima di iniziare
-
Esamina il Riferimento classe di archiviazione per determinare il
profileche desideri utilizzare per la tua classe di archiviazione. -
È inoltre possibile esaminare i profili personalizzati se si desidera specificare IOP personalizzate per il sito Block Storage for VPC.
-
Se si desidera utilizzare un profilo SSD a prestazioni definite (SDP), verificare i dettagli relativi alla gamma di capacità e agli IOP. Si noti che quando si usa un'unità SSD a prestazioni definite, la capacità del volume è determinata dagli IOP e dal throughput specificati.
-
È possibile utilizzare una classe di archiviazione esistente come punto di partenza per creare la propria classe. Salvare i dettagli di una classe di archiviazione esistente utilizzando il comando
kubectl get sc <storageclass> -o yaml. -
Per mantenere i costi bassi, inizialmente è possibile eseguire il provisioning di un PVC con capacità bassa, IOPS minimo e throughput minimo utilizzando la classe di storage
ibmc-vpc-block-sdp, che ha un minimo di 3000 IOPS e 1000 Throughput (Mbps). Dopo il provisioning, è possibile accedere al PVC e regolare IOPS e throughput in base alle esigenze.
Per creare una classe di archiviazione personalizzata:
-
Creare un file di configurazione della classe di archiviazione personalizzato nel seguente formato. Scegliete tra una classe di archiviazione di prima generazione e una di seconda generazione.
Esempio di prima generazione:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage_class_name> provisioner: vpc.block.csi.ibm.io parameters: profile: "<profile>" # general-purpose, sdp, 5iops-tier, 10iops-tier, or custom csi.storage.k8s.io/fstype: "<file_system_type>" # xfs, ext3, or ext4 billingType: "hourly" encrypted: "<encrypted_true_false>" encryptionKey: "<encryption_key>" resourceGroup: "" zone: "<zone>" region: "<region>" tags: "<tags>" generation: "gc" throughput: "<throughput>" # Example: 2000 classVersion: "1" iops: "<iops>" # Only specify this parameter if you are using a "custom" profile. allowVolumeExpansion: (true|false) # Select true or false. Only supported on version 3.0.1 and later volumeBindingMode: <volume_binding_mode> # csi.storage.k8s.io/provisioner-secret-name: # Uncomment and add secret parameters to enforce encryption. # csi.storage.k8s.io/provisioner-secret-namespace: reclaimPolicy: "<reclaim_policy>"name- Immetti un nome per la tua classe di archiviazione.
profile- Immettere il profilo selezionato nel passaggio precedente. Scegliere
general-purpose,sdp,5iops-tier,10iops-tier, o custom utilizzare un valore IOPs personalizzato. Per trovare le dimensioni di archiviazione supportate per un profilo specifico, vedere Profilo IOPS a livelli. Qualsiasi PVC che utilizza questa classe di archiviazione deve specificare un valore di dimensione compreso in questo intervallo. csi.storage.k8s.io/fstype- Nei parametri, immetti il file system per la tua istanza Block Storage for VPC. Scegli
xfs,ext3oext4. Se si desidera modificare la proprietà o i permessi del volume, è necessario specificarecsi.storage.k8s.io/fstypenella propria classe di archiviazione e il PVC deve avereReadWriteOncecomeaccessMode. Il driver Block Storage for VPC utilizza il driverReadWriteOnceWithFSTypefsGroupPolicy. Per ulteriori informazioni, consultare la documentazione del driver CSI. encrypted- Nei parametri, immettere
trueper creare una classe di archiviazione che imposti la crittografia per il volume Block Storage for VPC. Se si imposta questa opzione sutrue, è necessario fornire la chiave CRN della propria istanza del servizio Key Protect che si vuole utilizzare inparameterencryptionKey. Per ulteriori informazioni sulla crittografia dei tuoi dati, vedi Configurazione della crittografia per il tuo Block Storage for VPC. encryptionKey- Se si è inserito
trueperparameters.encrypted, inserire la chiave CRN di root dell'istanza del servizio Key Protect che si vuole usare per crittografare il volume Block Storage for VPC. Per ulteriori informazioni sulla crittografia dei tuoi dati, vedi Configurazione della crittografia per il tuo Block Storage for VPC. zone- Nei parametri, immetti la zona VPC in cui vuoi creare l'istanza Block Storage for VPC. Assicurati di utilizzare una zona a cui sono connessi i tuoi nodi di lavoro. Per elencare le zone VPC utilizzate dai nodi worker, eseguire
ibmcloud ks cluster get --cluster <cluster_name_or_ID>e osservare il campo Worker Zones nell'output della CLI. Se non si specifica una zona, viene selezionata automaticamente una delle zone dei nodi worker per l'istanza Block Storage for VPC. region- L'area del nodo worker a cui si vuole collegare lo storage.
tags- Nei parametri, inserire un elenco separato da spazi di tag da applicare all'istanza di Block Storage for VPC. Le tag posso aiutarti a trovare le istanze più facilmente oppure a raggruppare le tue istanze in base a caratteristiche comuni, come ad esempio l'applicazione o l'ambiente per cui sono utilizzate.
iops- Se si è inserito
customosdpperprofile, inserire un valore per le IOP che si desidera utilizzare per Block Storage for VPC. Per un elenco degli intervalli IOP supportati in base alle dimensioni del volume, consultare la tabella dei profili IOP personalizzati di Block Storage for VPC. throughput- Immettere questo valore se si utilizza un profilo
sdp. Per ulteriori informazioni, vedere i dettagli IOP e di throughput per il profilo SDP reclaimPolicy- Immetti la politica di riacquisizione per la tua classe di archiviazione. Se vuoi conservare il PV, il dispositivo di archiviazione fisico e i tuoi dati quando rimuovi la PVC, immetti
Retain. Se vuoi eliminare il PV, il dispositivo di archiviazione fisico e i tuoi dati quando rimuovi la PVC, immettiDelete. allowVolumeExpansion- Immettere la politica di espansione del volume per la classe di archiviazione. Se si desidera consentire l'espansione del volume, immettere
true. Se non si desidera consentire l'espansione del volume, immetterefalse. volumeBindingMode- Scegli se vuoi ritardare la creazione dell'istanza Block Storage for VPC finché il primo pod che utilizza questa archiviazione non è pronto per essere pianificato. Per ritardare la creazione, immetti
WaitForFirstConsumer. Per creare l'istanza quando crei la PVC, immettiImmediate.
Esempio di seconda generazione:
Se si effettua il provisioning di un PVC 9.6TB utilizzando la classe di storage
ibmc-vpc-block-5iops-tierdi prima generazione, l'IOPS massimo è 48.000 e il throughput massimo è 6144 Mbps. Tuttavia, con la classe di storageibmc-vpc-block-sdp-max-bandwidthdi seconda generazione, l'IOPS massimo è di 64.000 e il throughput massimo è di 8192 Mbps.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibmc-vpc-block-sdp-max-bandwidth provisioner: vpc.block.csi.ibm.io parameters: profile: "sdp" # general-purpose, sdp, 5iops-tier, 10iops-tier, or custom csi.storage.k8s.io/fstype: "ext4" # xfs, ext3, or ext4 billingType: "hourly" encrypted: "false" encryptionKey: "" resourceGroup: "" zone: "us-east" region: "tor01" tags: "tag" generation: "gc" throughput: "8192" # Example: 2000 classVersion: "1" iops: "64000" # Only specify this parameter if you are using a "custom" profile. allowVolumeExpansion: true # Select true or false. Only supported on version 3.0.1 and later volumeBindingMode: Immediate reclaimPolicy: "Delete" -
Crea la classe di archiviazione personalizzata nel tuo cluster.
kubectl apply -f custom-storageclass.yaml -
Verifica che la tua classe di archiviazione sia disponibile nel cluster.
kubectl get scOutput di esempio
NAME PROVISIONER AGE <custom-storageclass> vpc.block.csi.ibm.io 4m26s -
Segui la procedura in Aggiunta di Block Storage for VPC alle tue applicazioni per creare una PVC con la tua classe di archiviazione personalizzata per eseguire il provisioning di Block Storage for VPC. Monta quindi questa archiviazione su un'applicazione di esempio.
-
Facoltativo: verifica il tuo tipo di file system Block Storage for VPC.
Verifica del tuo file system Block Storage for VPC
Puoi creare una classe di archiviazione personalizzata per eseguire il provisioning di Block Storage for VPC con un file system differente, come ad esempio xfs o ext3. Per impostazione predefinita, il provisioning
di tutte le istanze Block Storage for VPC viene eseguito con un file system ext4.
-
Segui la procedura per creare una classe di archiviazione personalizzata con il file system che desideri utilizzare.
-
Seguire i passaggi 4-9 in Aggiunta di Block Storage for VPC alle applicazioni per creare un PVC con la classe di archiviazione personalizzata per fornire Block Storage for VPC con un file system diverso. Monta quindi questa archiviazione in un pod dell'applicazione.
La tua applicazione potrebbe impiegare qualche minuto a montare l'archiviazione ed entrare in uno stato Running.
-
Verifica che la tua archiviazione sia montata con il file system corretto. Elenca i pod nel tuo cluster e prendi nota del nome (Name) del pod che hai utilizzato per montare la tua archiviazione.
kubectl get pods -
Accedi al tuo pod.
kubectl exec <pod_name> -it bash -
Elenca i percorsi di montaggio all'interno del tuo pod.
mount | grep /dev/xvdgEsempio di output per
xfs./dev/xvdg on /test type xfs (rw,relatime,attr2,inode64,noquota) -
Esci dal tuo pod.
exit
Aggiornamento di VolumeAttachLimit
Nelle versioni 5.2 e successive del componente aggiuntivo del cluster Block Storage for VPC, puoi modificare il numero massimo di volumi che possono essere collegati a ciascun nodo modificando la configmap. Il valore predefinito
è 12.
L'account deve essere approvato per utilizzare questa funzione.
-
Modifica la mappa di configurazione. Sostituire
VALUEcon il limite di collegamento volume che si desidera impostare.kubectl patch configmap/addon-vpc-block-csi-driver-configmap \ -n kube-system \ --type merge \ -p '{"data":{"VolumeAttachmentLimit":"VALUE"}}' -
Attendi il riavvio dei pod
ibm-vpc-block-csi-nodenello spazio dei nomikube-system. Verifica che i pod siano stati riavviati.kubectl get pods -n kube-system -w| grep block-csi -
Puoi ora collegare i volumi ai tuoi nodi di lavoro utilizzando il provisioning dinamico o creando manualmente gli allegati. Per ulteriori informazioni, consultare Aggiunta di Block Storage for VPC alle tue app o Utilizzo di un'istanza Block Storage for VPC esistente.
Archiviazione delle tue impostazioni PVC personalizzate in un segreto Kubernetes
Specifica le tue impostazioni PVC in un segreto Kubernetes e il riferimento a questo segreto in una classe di archiviazione personalizzata. Quindi, utilizza la classe di archiviazione personalizzata per creare una PVC con i parametri personalizzati che hai impostato nel tuo segreto.
- Quali opzioni ho per utilizzare il segreto di Kubernetes?
- Come amministratore del cluster, puoi scegliere se vuoi consentire ad ogni utente del cluster di sovrascrivere le impostazioni predefinite di una classe di archiviazione oppure se vuoi creare un segreto che chiunque nel cluster deve utilizzare e che applica la codifica base64 per il tuo CRN della chiave root Key Protect.
- Ogni utente può personalizzare le impostazioni predefinite.
- In questo scenario, l'amministratore del cluster crea una classe di archiviazione personalizzata con le impostazioni predefinite del PVC e un riferimento a un generico segreto Kubernetes. Gli utenti del cluster possono sovrascrivere le impostazioni predefinite della classe di archiviazione creando un segreto Kubernetes con le impostazioni PVC che desiderano. Affinché le impostazioni personalizzate nel segreto vengano applicate alla tua istanza Block Storage for VPC, devi creare una PVC con lo stesso nome del tuo segreto Kubernetes.
- Forza la codifica base64 della chiave root Key Protect
- In questo scenario, si crea una classe di archiviazione personalizzata con le impostazioni predefinite del PVC e un riferimento a un segreto statico Kubernetes che sovrascrive o migliora le impostazioni predefinite della classe di archiviazione personalizzata. Gli utenti del cluster non possono annullare le impostazioni predefinite creando il proprio segreto Kubernetes. Invece, gli utenti del cluster devono eseguire il provisioning di Block Storage for VPC con la configurazione che hai scelto nella classe di archiviazione personalizzata e nel segreto. Il vantaggio dell'utilizzo di questo metodo rispetto alla creazione di una sola classe di archiviazione personalizzata è che puoi applicare la codifica base64 per il CRN della chiave root della tua istanza del servizio Key Protect quando vuoi crittografare i dati nella tua istanza Block Storage for VPC.
- Di cosa devo essere consapevole prima di iniziare a utilizzare il segreto di Kubernetes per le mie impostazioni del PVC?
- Alcune impostazioni del PVC, come
reclaimPolicy,fstype, ovolumeBindingModenon possono essere impostate nel segreto Kubernetes e devono essere impostate nella classe di archiviazione. Come amministratore del cluster, se vuoi consentire agli utenti del tuo cluster di sovrascrivere le tue impostazioni predefinite, devi assicurarti di aver configurato sufficienti classi di archiviazione personalizzate che fanno riferimento a un segreto Kubernetes generico in modo che i tuoi utenti possano eseguire il provisioning di Block Storage for VPC con diverse impostazioni direclaimPolicy,fstypeevolumeBindingMode.
Abilitazione di ogni utente a personalizzare le impostazioni PVC predefinite
-
Come amministratore del cluster, segui la procedura per creare una classe di archiviazione personalizzata. Nel file YAML della classe di archiviazione personalizzata, fare riferimento al segreto Kubernetes nella sezione
metadata.parameterscome segue. Assicurati di aggiungere il codice così come è e di non modificare i nomi delle variabili.csi.storage.k8s.io/provisioner-secret-name: ${pvc.name} csi.storage.k8s.io/provisioner-secret-namespace: ${pvc.namespace} -
Come utente del cluster, crea un segreto Kubernetes che personalizza le impostazioni predefinite della classe di archiviazione.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: iops: "<IOPS_value>" zone: "<zone>" tags: "<tags>" encrypted: <true_or_false> resourceGroup: "<resource_group>" data encryptionKey: <encryption_key>name- Immetti un nome per il tuo segreto Kubernetes.
namespace- Immetti lo spazio dei nomi in cui vuoi creare il tuo segreto. Per fare riferimento al segreto nella tua PVC, la PVC deve essere creata nello stesso spazio dei nomi.
iops- Nella sezione string data, immetti l'intervallo di IOPS che vuoi consentire per la tua istanza Block Storage for VPC. L'intervallo che immetti deve corrispondere al livello di Block Storage for VPC che prevedi di utilizzare.
zone- Nella sezione string data, immetti la zona VPC in cui vuoi creare l'istanza Block Storage for VPC. Assicurati di utilizzare una zona a cui sono connessi i tuoi nodi di lavoro. Per elencare le zone VPC utilizzate dai nodi worker, eseguire
ibmcloud ks cluster get --cluster <cluster_name_or_ID>e osservare il campo Worker Zones nell'output della CLI. Se non si specifica una zona, viene selezionata automaticamente una delle zone dei nodi worker per l'istanza Block Storage for VPC. tags- Nella sezione string data, immetti un elenco di tag separate da virgole da utilizzare quando viene creata la PVC. I tag possono aiutare a trovare l'istanza di archiviazione dopo la sua creazione.
resourceGroup- Nella sezione dei dati della stringa, inserire l'ID del gruppo di risorse a cui si vuole che l'istanza di Block Storage for VPC abbia accesso. Se non si inserisce un gruppo di risorse, l'istanza è automaticamente autorizzata ad accedere alle risorse del gruppo di risorse a cui appartiene il cluster.
encrypted- Nella sezione dati stringa, inserire
trueper creare un segreto che imposti la crittografia per i volumi Block Storage for VPC. Se si imposta questa opzione sutrue, è necessario fornire la chiave CRN della propria istanza del servizio Key Protect che si vuole utilizzare inparameters.encryptionKey. Per ulteriori informazioni sulla crittografia dei dati, vedere Impostazione della crittografia per il sito Block Storage for VPC. encryptionKey- Nella sezione dati, se si è inserito
trueperparameters.encrypted, inserire la chiave CRN di root dell'istanza del servizio Key Protect che si desidera utilizzare per crittografare i volumi di Block Storage for VPC. Per utilizzare la chiave radice CRN in un segreto, occorre prima convertirla in base64 eseguendoecho -n "<root_key_CRN>" | base64. Per ulteriori informazioni sulla crittografia dei tuoi dati, vedi Configurazione della crittografia per il tuo Block Storage for VPC.
-
Crea il tuo segreto Kubernetes.
kubectl apply -f secret.yaml -
Segui la procedura in Aggiunta di Block Storage for VPC alle tue applicazioni per creare una PVC con le tue impostazioni personalizzate. Assicurati di creare la PVC con la classe di archiviazione personalizzata creata dall'amministratore del cluster e utilizza lo stesso nome per la tua PVC di quello utilizzato per il tuo segreto. L'utilizzo dello stesso nome per segreto e PVC attiva il provider di archiviazione ad applicare le impostazioni del segreto nella tua PVC.
Applicazione della codifica base64 per il CRN della chiave root Key Protect
-
Come amministratore del cluster, crea un segreto Kubernetes che include il valore codificato base64 per il tuo CRN della chiave root Key Protect. Per richiamare il CRN della chiave root, vedi Configurazione della crittografia per il tuo Block Storage for VPC.
apiVersion: v1 kind: Secret type: vpc.block.csi.ibm.io metadata: name: <secret_name> namespace: <namespace_name> stringData: encrypted: <true_or_false> resourceGroup: "<resource_group>" data: encryptionKey: <encryption_key>name- Immetti un nome per il tuo segreto Kubernetes.
namespace- Immetti lo spazio dei nomi in cui vuoi creare il tuo segreto. Per fare riferimento al segreto nella tua PVC, la PVC deve essere creata nello stesso spazio dei nomi.
encrypted- Nella sezione dati stringa, inserire
trueper creare un segreto che imposti la crittografia per i volumi Block Storage for VPC. Se si imposta questa opzione sutrue, è necessario fornire la chiave CRN della propria istanza del servizio Key Protect che si vuole utilizzare inparameters.encryptionKey. Per ulteriori informazioni sulla crittografia dei dati, vedere Impostazione della crittografia per il sito Block Storage for VPC. encryptionKey- Nella sezione dati, se si è inserito
trueperparameters.encrypted, inserire la chiave CRN di root dell'istanza del servizio Key Protect che si desidera utilizzare per crittografare il volume Block Storage for VPC. Per utilizzare la chiave radice CRN in un segreto, è necessario prima convertirla in base 64 eseguendoecho -n "<root_key_CRN>" | base64. Per ulteriori informazioni sulla crittografia dei tuoi dati, vedi Configurazione della crittografia per il tuo Block Storage for VPC.
-
Crea il segreto Kubernetes.
kubectl apply -f secret.yaml -
Segui la procedura per creare una classe di archiviazione personalizzata. Nel file YAML della classe di archiviazione personalizzata, fare riferimento al segreto Kubernetes nella sezione
metadata.parameterscome segue. Assicurati di immettere il nome del segreto Kubernetes che hai creato precedentemente e lo spazio dei nomi dove hai creato il segreto.csi.storage.k8s.io/provisioner-secret-name: <secret_name> csi.storage.k8s.io/provisioner-secret-namespace: <secret_namespace> -
Come utente del cluster, segui la procedura in Aggiunta di Block Storage for VPC alle tue applicazioni per creare una PVC dalla tua classe di archiviazione personalizzata.
Impostazione dell'espansione del volume
Per eseguire il provisioning di volumi che supportano l'espansione, è necessario utilizzare la classe di archiviazione allowVolumeExpansion impostata su true.
Puoi espandere solo i volumi montati da un pod dell'applicazione.
-
Se non stai utilizzando la versione
4.2o una versione successiva del componente aggiuntivo, aggiorna il componente aggiuntivo del cluster Block Storage for VPC nel tuo cluster. -
Crea una PVC che utilizza una classe di archiviazione che supporta l'espansione del volume.
-
Distribuisci un'applicazione che utilizza la tua PVC. Quando crei la tua applicazione, prendi nota del
mountPathche specifichi. -
Dopo che la tua PVC è stata montata da un pod dell'applicazione, puoi espandere il tuo volume modificando il valore del campo
spec.resources.requests.storagenella tua PVC. Per espandere il volume, modifica la tua PVC e aumenta il valore nel campospec.resources.requests.storage.kubectl edit pvc <pvc-name>Esempio
spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Salvare e chiudere il PVC.
-
Facoltativo: verifica che il volume sia espanso. Ottieni i dettagli della tua PVC e prendi nota del nome PV.
kubectl get pvc <pvc-name> -
Descrivi il tuo PV e prendi nota dell'ID volume.
kubectl describe PV -
Ottieni i dettagli del tuo volume Block Storage for VPC e verifica la capacità.
ibmcloud is vol <volume-ID>
Espansione manuale dei volumi prima della versione del componente aggiuntivo 4.2
Completare i seguenti passaggi per espandere manualmente i volumi Block Storage for VPC esistenti creati prima della versione 4.2 dell'add-on.
Puoi espandere solo i volumi montati da un pod dell'applicazione.
-
Ottieni i dettagli della tua app e prendi nota del nome PVC e di
mountPath.kubectl get pod <pod-name> -n <pod-namespace> -o yaml -
Ottieni i dettagli della tua PVC e prendi nota del nome PV.
kubectl get pvc -
Descrivi il tuo PV e ottieni il
volumeId.kubectl describe pv `pv-name` | grep volumeIdOutput di esempio per l'ID volume
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1.volumeId=r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1 -
Ridimensionare il volume utilizzando una richiesta PATCH. Il seguente esempio ridimensiona un volume a 250 GiB.
curl -sS -X PATCH -H "Authorization: <iam_token>" "https://<region>.iaas.cloud.ibm.com/v1/volumes/<volumeId>?generation=2&version=2020-06-16" -d '{"capacity":250}'<iam_token>- Il tuo token IAM. Per recuperare il token IAM, eseguire
ibmcloud iam oauth-tokens. <region>- La regione in cui si trova il tuo cluster, ad esempio
us-south. <volumeId>- L'ID volume che hai richiamato in precedenza. Ad esempio
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1. <capacity>- L'aumento della capacità in GiB, ad esempio
250.
-
Accedi al tuo pod dell'applicazione.
kubectl exec <pod-name> -it -- bash -
Eseguire il seguente comando per utilizzare i file binari host.
chroot /host -
Ottenere i dettagli del filesystem e prendere nota del percorso
Filesystemche si desidera aggiornare. Puoi anchegrepper il percorso di montaggio come specificato nel tuo pod dell'applicazione.df -h | grep <mount-path>.df -hOutput di esempio
Filesystem Size Used Avail Use% Mounted on overlay 98G 64G 29G 70% / tmpfs 64M 0 64M 0% /dev tmpfs 32G 0 32G 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/vda2 98G 64G 29G 70% /etc/hosts /dev/vdg 9.8G 37M 9.8G 1% /mount-path # Note the Filesystem path that corresponds to the mountPath that you specified in your app. tmpfs 32G 40K 32G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 32G 0 32G 0% /proc/acpi tmpfs 32G 0 32G 0% /proc/scsi tmpfs 32G 0 32G 0% /sys/firmware -
Ridimensionare il filesystem.
sudo resize2fs <filesystem-path>Comando di esempio
sudo resize2fs /dev/vdg -
Verificare che il file system sia ridimensionato.
df -h
Backup e ripristino di dati
I dati su Block Storage for VPC sono protetti attraverso zone di guasto ridondanti nella tua regione. Per eseguire il backup manuale dei tuoi dati, utilizza il comando kubectl cp Kubernetes.
È possibile utilizzare il comando kubectl cp per copiare file e directory da e verso i pod o i contenitori
specifici del cluster
Prima di iniziare: Accedere al proprio account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.
Per eseguire il backup o il ripristino dei dati, scegli tra le seguenti opzioni:
Copiare i dati dal computer locale a un pod del cluster.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath>
Copiare i dati da un pod del cluster al computer locale.
kubectl cp <namespace>/<pod>:<pod_filepath>/<filename> <local_filepath>/<filename>
Copiare i dati dal computer locale a un contenitore specifico che gira in un pod del cluster.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath> -c CONTAINER
Comprensione della capacità di richiesta del volume
Il driver CSI del blocco VPC calcola la capacità del volume utilizzando la seguente formula.
-
Se il valore è fornito in
Gi: rBytes(requestedBytes) = X * 1024^3 -
Se il valore è fornito in
G: rBytes(requestedBytes) = X * 10^9
Il valore richiesto è uguale a (((rBytes+ GiB - 1) / GiB) * GiB) / GiB.
Ad esempio:
- Se viene fornito un valore di
20Gi, applicando la formula precedente, il volume creato è20GB. - Se viene fornito un valore di
20G, il volume creato è19GB.
A volte, la capacità del volume creato è inferiore al valore richiesto. Tieni presente che la fatturazione si applica al volume che viene creato, non al volume richiesto.
Assegnazione di profili di fiducia allo storage a blocchi
A causa di un problema noto, gli aggiornamenti ai tag utente sui volumi Block Storage VPC potrebbero non essere visualizzati quando viene implementato un profilo attendibile. Questo problema non è presente nei cluster che non utilizzano profili affidabili.
È possibile utilizzare i profili di fiducia per concedere a diverse identità di IBM Cloud l'accesso alle risorse dell'account, comprese le soluzioni di archiviazione. I profili di fiducia centralizzano il controllo degli accessi, eliminano la necessità di chiavi API a lunga durata e consentono di limitare le autorizzazioni al minimo indispensabile per un'attività specifica. Per ulteriori informazioni, vedere Configurazione di un profilo di fiducia per i componenti di archiviazione.