Configuration de Block Storage for VPC
Block Storage for VPC fournit un stockage de données hautes performances monté sur hyperviseur pour les instances de serveur virtuel que vous mettez à disposition dans un VPC.
Vous pouvez choisir entre des niveaux de stockage prédéfinis avec des tailles en gigaoctets (Go) et un nombre d'opérations d'entrée-sortie par seconde (IOPS) répondant aux exigences de vos charges de travail. Pour déterminer si Block Storage for VPC est l'option de stockage qui vous convient le mieux, voir Choix d'une solution de stockage. Pour plus d'informations sur la tarification, voir Pricing for Block Storage for VPC.
- Le module complémentaire de cluster Block Storage for VPC est activé par défaut sur les clusters VPC.
- Si vous désactivez le Block Storage for VPC module complémentaire, il restera désactivé jusqu'à ce que vous le réactiviez. Il n'est pas activé lorsque vous actualisez ou mettez à jour le maître du cluster.
Démarrage rapide pour IBM Cloud Block Storage for VPC
Dans ce guide de démarrage rapide, vous créez un volume 10Gi 5IOPS tier Block Storage for VPC dans votre cluster en créant un PVC pour provisionner dynamiquement le volume. Ensuite, vous créez un déploiement d'application qui monte votre PVC.
Désormais disponible, vous pouvez choisir une classe de stockage de deuxième génération.
Vos volumes Block Storage for VPC peuvent être montés par plusieurs pods à condition que ces pods soient planifiés sur le même nœud.
-
Créez un fichier pour votre PVC et nommez-le
pvc.yaml. Choisissez entre une classe de stockage de première et de deuxième génération.Exemple de première génération utilisant la classe de stockage
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: 10GiExemple de deuxième génération utilisant la classe de stockage
ibmc-vpc-block-sdp:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: ibmc-vpc-block-sdp accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Créez la PVC dans votre cluster.
oc apply -f pvc.yaml -
Une fois la réservation de volume persistant liée, créez un déploiement d'application qui utilise votre PVC. Créez un fichier pour votre déploiement et nommez-le
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 -
Créez le déploiement dans votre cluster.
oc apply -f deployment.yaml
Pour plus d'informations, voir les liens suivants.
Ajout de Block Storage for VPC à vos applications
Choisissez votre profil Block Storage for VPC et créez une réservation de volume persistant afin de mettre à disposition de façon dynamique Block Storage for VPC pour votre cluster. La mise à disposition dynamique crée automatiquement le volume persistant (PV) correspondant et commande l'unité de stockage physique dans votre compte IBM Cloud.
-
Déterminez le profil Block Storage for VPC qui répond le mieux à vos exigences en termes de capacité et de performances.
-
Sélectionnez la classe de stockage correspondante pour votre profil Block Storage for VPC.
Toutes les classes de stockage prédéfinies par IBM configurent Block Storage for VPC avec un système de fichiers
ext4par défaut. Si vous souhaitez utiliser un autre système de fichiers, tel quexfsouext3, créez une classe de stockage personnalisée.- 10 IOPS/Go :
ibmc-vpc-block-10iops-tierouibmc-vpc-block-retain-10iops-tier - 5 IOPS/Go :
ibmc-vpc-block-5iops-tierouibmc-vpc-block-retain-5iops-tier - 3 IOPS/Go :
ibmc-vpc-block-general-purposeouibmc-vpc-block-retain-general-purpose - Custom :
ibmc-vpc-block-customouibmc-vpc-block-retain-custom
- 10 IOPS/Go :
-
Déterminez la configuration à adopter pour Block Storage for VPC.
- Choisissez une taille pour votre stockage. Vérifiez que la taille est prise en charge par le profil Block Storage for VPC que vous avez choisi.
- Déterminez si vous souhaitez conserver vos données après la suppression du cluster ou de la réservation de volume persistant (PVC).
- Pour conserver vos données, choisissez une classe de stockage
retain. Lorsque vous supprimez la PVC, seule la réservation de volume persistant est supprimée. Le volume persistant (PV), l'unité de stockage physique dans votre compte IBM Cloud, ainsi que vos données existent toujours. Pour récupérer le stockage et l'utiliser à nouveau dans votre cluster, vous devez retirer le volume persistant et suivre les étapes d'utilisation de l'unité Block Storage for VPC existante. - Si vous souhaitez que le volume persistant, les données et votre unité Block Storage for VPC physique soient supprimés en même temps que la PVC, choisissez une classe de stockage sans
retain.
- Pour conserver vos données, choisissez une classe de stockage
-
Créez un fichier de configuration pour définir votre réservation de volume persistant (PVC) et sauvegardez la configuration sous forme de fichier 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. -
Créez la PVC dans votre cluster.
oc apply -f pvc.yaml -
Vérifiez que votre PVC est créée et liée au volume persistant (PV). Ce processus peut prendre quelques minutes.
oc describe pvc <pvc_name>Exemple de sortie
Name: mypvv Namespace: default StorageClass: ibmc-vpc-block-5iops-tier Status: Bound Volume: Labels: <none> Annotations: oc.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> -
Créez un fichier de configuration de déploiement pour votre application et montez la PVC sur votre application.
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- Dans la section metadata, entrez un libellé pour le déploiement.
matchLabels.appetlabels.app- Dans les sections spec.selector et template.metadata, entrez un libellé pour votre application.
image- Indiquez le nom de l'image de conteneur que vous souhaitez utiliser. Pour répertorier les images disponibles dans votre compte IBM Cloud Container Registry, exécutez la commande
ibmcloud cr image-list. name- Indiquez le nom du conteneur que vous souhaitez déployer dans votre pod.
mountPath- Dans la section container.volume.mounts, entrez le chemin d'accès absolu du répertoire où est monté le PVC dans le conteneur.
name- Dans la section container.volume.mounts, entrez le nom du volume à monter sur votre pod. Vous pouvez entrer n'importe quel nom.
name- Dans la section volumes, entrez le nom du volume à monter sur votre pod. Généralement, ce nom est identique à
volumeMounts.name. claimName- Dans la section volumes.persistent.volume.claim, entrez le nom de la PVC que vous avez créée précédemment.
-
Créez le déploiement dans votre cluster.
oc apply -f deployment.yaml -
Vérifiez que la réservation de volume persistant est bien montée sur votre application. Le passage de vos pods à l'état En cours d'exécution peut prendre quelques minutes.
Durant le déploiement de votre application, il se peut qu'un message d'erreur
Unable to mount volumess'affiche pas intermittence dans la section Evénements de votre sortie CLI. Le module complémentaire de cluster Block Storage for VPC réessaie automatiquement de monter le stockage pour vos applications. Quelques minutes supplémentaires sont nécessaires avant que le stockage ne soit monté sur votre application.oc describe deployment <deployment_name>Exemple de sortie
... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: mypvc ReadOnly: false
Utilisation d'une instance Block Storage for VPC existante
Si vous disposez déjà d'une unité Block Storage for VPC physique que vous souhaitez utiliser dans votre cluster, vous pouvez créer le volume persistant (PV) et la réservation de volume persistant (PVC) manuellement pour une mise à disposition statique du stockage.
Vous pouvez connecter un volume à un noeud worker uniquement. Assurez-vous que le volume se trouve dans la même zone que le noeud worker pour parvenir à établir la connexion.
-
Déterminez le volume que vous souhaitez connecter à un noeud worker dans votre cluster de VPC. Notez l'ID du volume.
ibmcloud is volumes -
Affichez les détails de votre volume. Notez les valeurs de Taille, Zone et ES/s. Ces valeurs sont utilisées pour créer votre volume persistant (PV).
ibmcloud is volume <volume_id> -
Procurez-vous la liste des noeuds worker figurant dans votre cluster de VPC. Notez la zone du noeud worker qui se trouve dans la même zone que votre volume de stockage.
ibmcloud oc worker ls -c <cluster_name> -
Facultatif : si vous avez mis à disposition votre instance Block Storage for VPC physique à l'aide d'une classe de stockage
retain, le volume persistant (PV) et l'unité de stockage physique ne sont pas retirés en même temps que la PVC. Pour utiliser votre unité Block Storage for VPC physique dans votre cluster, vous devez d'abord retirer d'abord le volume persistant existant.-
Répertoriez les volumes persistants de votre cluster et recherchez celui qui appartient à votre unité Block Storage for VPC. Ce PV est à l'état
released.oc get pv -
Supprimez le volume persistant.
oc delete pv <pv_name>
-
-
Créez un fichier de configuration pour votre volume persistant. Incluez les valeurs ID, Taille, Zone et IOPS que vous avez extraites précédemment.
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- Dans la section metadata, entrez un nom pour votre volume persistant.
storage- Dans la section spec.capacity, entrez la taille de votre volume Block Storage for VPC en gigaoctets (Gi) que vous avez extrait précédemment. Par exemple, si la taille de votre unité est de 100 Go, entrez
100Gi. iops- Dans la section spec.CSI.volume.attributes, entrez le nombre maximal d'IOPS du volume Block Storage for VPC que vous avez extrait précédemment.
zone- Dans la section spec.CSI.volume.attributes, entrez la zone de bloc VPC correspondant à l'emplacement que vous avez extrait précédemment. Par exemple, si votre emplacement est
Washington DC-1, utilisezus-east-1comme zone. Pour répertorier les zones disponibles, exécutez la commandeibmcloud is zones. Pour connaître les zones et régions VPC disponibles, voir Création d'un VPC dans une autre région. Indiquez le paramètre " région " lorsque la zone " zone " est spécifiée. region- La région du noeud worker où vous souhaitez connecter le stockage.
worker_node_primary_IP- L'Adresse IP principale du noeud worker sur lequel vous souhaitez connecter le stockage. Vous pouvez trouver l'adresse IP principale de votre noeud de travail en exécutant
ibmcloud oc worker ls. volumeIdetspec.csi.volumeHandle- Dans la section spec.CSI.volume.attributes, entrez l'ID du volume Block Storage for VPC que vous avez extrait précédemment.
storageClassName- Pour la spécification de nom de classe de stockage, entrez une chaîne vide.
matchExpressions- Dans la section spec.node.affinity, entrez les termes de sélecteur de noeud qui doivent correspondre à la zone. Pour la clé, entrez
failure-domain.beta.kubernetes.io/zone. Pour la valeur, entrez la zone de votre noeud worker où vous souhaitez associer le stockage. matchExpressions- Dans la section spec.node.affinity, entrez les termes de sélecteur de noeud qui doivent correspondre à la région. Pour la clé, entrez
failure-domain.beta.kubernetes.io/region. Pour la valeur, entrez la région du noeud worker où vous souhaitez associer le stockage.
-
Créez le volume persistant dans votre cluster.
oc apply -f pv.yaml -
Vérifiez que le volume persistant (PV) est créé dans votre cluster.
oc get pv -
Créez un autre fichier de configuration pour votre PVC. Pour que cette réservation corresponde au volume persistant que vous avez créé auparavant, vous devez sélectionner la même valeur pour la taille de stockage et le mode d'accès. Dans votre zone de classe de stockage, entrez une valeur de chaîne vide qui devra correspondre à votre volume persistant. Si l'un de ces champs ne correspond pas au PV, un nouveau PV et une instance Block Storage for VPC sont créés automatiquement via le provisionnement dynamique.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc_name> spec: accessModes: - ReadWriteOnce resources: requests: storage: <vpc_block_storage_size> storageClassName: "" -
Créez votre PVC.
oc apply -f pvc.yaml -
Vérifiez que votre PVC est créée et liée au volume persistant que vous avez créé auparavant. Ce processus peut prendre quelques minutes.
oc describe pvc <pvc_name>
- Créez un déploiement ou un pod qui utilise votre 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>"
Mise à jour du module complémentaire de cluster Block Storage for VPC
Vous pouvez mettre à jour le module complémentaire Block Storage for VPC de cluster à l'aide de la addon update commande.
Avant de mettre à jour le module complémentaire, consultez le fichier Journal des modifications.
Avant de passer à une version " 5.x à partir d'une version précédente, vous ne devez pas avoir d'instantanés de volume en état " failure Pour plus d'informations, consultez Pourquoi ne puis-je pas supprimer mes ressources Block Storage for VPC d'instantané de volume?.
-
Vérifiez si une mise à jour est disponible. Si tel est le cas, un astérisque apparaît en regard de la version de plug-in et la version la plus récente est affichée. Notez cette valeur car elle sera utilisée ultérieurement.
ibmcloud oc cluster addons --cluster <cluster_name_or_ID>Exemple de sortie
Name Version Health State Health Status vpc-block-csi-driver 1.0.0* (2.0.0 latest) normal Addon Ready -
Mettez à jour le module complémentaire. Notez que les commandes de mise à jour sont différentes selon la version que vous avez installée.
5.0 et versions ultérieures Exécutez la commande
addon update.ibmcloud oc cluster addon update vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]Toutes les versions antérieures à la version 5.0 Désactivez et activez le module complémentaire.
ibmcloud oc cluster addon disable vpc-block-csi-driver --cluster CLUSTER [-f] [-q]ibmcloud oc cluster addon enable vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y] -
Vérifiez que le module complémentaire est à l'état
Addon Ready. Quelques minutes peuvent s'écouler avant que le module complémentaire ne soit prêt.ibmcloud oc cluster addon ls --cluster <cluster_name_or_ID>Exemple de sortie
Name Version Health State Health Status vpc-block-csi-driver 2.0.0 normal Addon ReadySi vous utilisez une classe de stockage par défaut autre que la classe de stockage
ibmc-vpc-block-10iops-tier, vous devez modifier les paramètres de classe de stockage par défaut dans la mappe de configurationaddon-vpc-block-csi-driver-configmap. Pour plus d'informations, voir Modification de la classe de stockage par défaut. -
Si vous avez créé vos propres classes de stockage sur la base des classes de stockage par défaut de Block Storage for VPC, vous devez recréer ces classes de stockage pour mettre à jour les paramètres. Pour plus d'informations, voir Recréer vos propres classes de stockage après une mise à jour vers la version 4.2.
Recréation de vos propres classes de stockage après la mise à jour vers la version 4.2
Avec la version 4.2, les paramètres par défaut des classes de stockage ont changé. Les paramètres sizeRange ou iopsRange ne sont plus utilisés. Si vous avez créé vos propres classes de stockage qui utilisent ces paramètres,
vous devez les modifier pour les supprimer. Pour modifier les paramètres de vos propres classes de stockage, vous devez les supprimer et les recréer. Auparavant, sizeRange et iopsRange étaient fournis à chaque classe
de stockage en tant qu'informations de référence. Avec la version 4.2, ces références ont été supprimées. Pour plus d'informations sur les profils de stockage de blocs, les tailles et les IOP, reportez-vous à la référence Profils de stockage de bloc.
-
Pour connaître les détails de vos propres classes de stockage, exécutez la commande suivante.
oc describe sc STORAGECLASS -
Si la classe de stockage utilise
sizeRangeouiopsRange, obtenez la classe de stockage YAML et sauvegardez la dans un fichier.oc get sc STORAGECLASS -o yaml -
Dans le fichier que vous avez sauvegardé à partir de la sortie de la commande précédente, supprimez les paramètres
sizeRangeouiopsRange. -
Supprimez la classe de stockage de votre cluster.
oc delete sc STORAGECLASS -
Recréez la classe de stockage dans votre cluster à l'aide du fichier que vous avez créé précédemment.
oc apply -f custom-storage-class.yaml
Configuration du chiffrement pour Block Storage for VPC
Utilisez un fournisseur de service de gestion de clés (KMS), tel que IBM® Key Protect, pour créer une clé racine privée que vous utilisez dans votre instance Block Storage for VPC pour chiffrer les données telles qu'elles sont écrites dans le stockage. Après avoir créé la clé racine privée, créez votre propre classe de stockage ou un secret Kubernetes avec votre clé racine, puis utilisez cette classe de stockage ou ce secret pour provisionner votre instance Block Storage for VPC.
L'activation du chiffrement Block Storage for VPC a un impact sur les performances d'environ 20 %. Toutefois, l'impact exact dépend de la configuration de votre noeud worker et de votre volume de stockage. Pensez à prendre en compte les impacts sur les performances lors de l'activation du chiffrement.
-
Créez une instance du fournisseur KMS que vous souhaitez utiliser.
-
Créez une clé racine dans votre instance KMS.
- Clé racine Key Protect.
- Clé racine Hyper Protect Crypto Services. Par défaut, la clé racine est créée sans date d'expiration.
-
Mettre en place l'autorisation de service à service. Autorisez Block Storage for VPC à accéder à IBM® Key Protect. Veillez à donner à Block Storage for VPC au moins
Readerl'accès à votre instance KMS. -
Décidez si vous souhaitez stocker le CRN de clé racine Key Protect dans une classe de stockage personnalisée ou dans un secret Kubernetes. Ensuite, suivez la procédure de création d'une classe de stockage personnalisée ou d'un secret Kubernetes.
Exemple de classe de stockage personnalisée.
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- Dans les paramètres, entrez
truepour créer une classe de stockage qui configure le chiffrement de vos volumes Block Storage for VPC. Si vous définissez cette option surtrue, vous devez fournir la clé racine CRN de votre instance de service Key Protect que vous souhaitez utiliser dansparameters.encryptionKey. encryptionKey- Dans les paramètres, entrez le CRN de clé racine que vous avez extrait précédemment.
Exemple de secret Kubernetes.
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- Entrez un nom pour votre secret.
namespace- Entrez l'espace de noms dans lequel vous désirez créer votre secret.
encrypted- Dans les paramètres, entrez
truepour configurer le cryptage de vos volumes Block Storage for VPC. encryptionKey- Dans les paramètres, entrez le CRN de clé racine de votre instance de service Key Protect que vous souhaitez utiliser pour chiffrer votre volume Block Storage for VPC. Pour utiliser votre CRN de clé racine dans un secret, vous devez d'abord
le convertir en base64 en exécutant
echo -n "<root_key_CRN>" | base64.
-
Suivez les étapes 4 à 9 de la rubrique Ajout d'une instance Block Storage for VPC à vos applications pour créer une PVC avec votre classe de stockage personnalisée afin de mettre à disposition une instance Block Storage for VPC qui est configurée pour chiffrement avec votre clé racine Key Protect. Ensuite, montez ce stockage sur un pod d'application.
Le montage du stockage par votre application et le passage de celle-ci à l'état En cours d'exécution peuvent prendre quelques minutes.
-
Vérifiez que vos données sont chiffrées. Répertoriez vos volumes Block Storage for VPC et notez l'ID de l'instance que vous avez créée. Le nom (Name) de l'instance de stockage correspond au nom du volume persistant qui a été automatiquement créé en même temps que la réservation de volume persistant.
ibmcloud is volsExemple de sortie
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 -
A l'aide de l'ID du volume, répertoriez les détails de votre instance Block Storage for VPC afin de vous assurer que votre clé racine Key Protect est stockée dans l'instance de stockage. La clé racine se trouve dans la zone Encryption key de la sortie de votre interface de ligne de commande.
ibmcloud is vol <volume_ID>Exemple de sortie
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
Personnalisation des paramètres de stockage par défaut
Vous pouvez modifier certains paramètres de PVC par défaut à l'aide d'une classe de stockage personnalisée ou d'un secret Kubernetes pour créer Block Storage for VPC avec vos paramètres personnalisés.
- Quel est l'avantage d'utiliser un secret et de spécifier mes paramètres dans une classe de stockage personnalisée?
- En tant qu'administrateur de cluster, créez une classe de stockage personnalisée lorsque vous souhaitez que tous les PVC que vos utilisateurs de cluster créent pour être mis à disposition avec une configuration spécifique et que vous ne souhaitez pas permettre à vos utilisateurs de cluster de remplacer la configuration par défaut.
- Toutefois, lorsque plusieurs configurations sont requises et que vous ne souhaitez pas créer de classe de stockage personnalisée pour chaque configuration PVC possible, vous pouvez créer une classe de stockage personnalisée avec les paramètres PVC par défaut et une référence à un secret Kubernetes générique. Si vos utilisateurs de cluster doivent remplacer les paramètres par défaut de votre classe de stockage personnalisée, ils peuvent le faire en créant un secret Kubernetes qui contient leurs paramètres personnalisés.
Lorsque vous souhaitez configurer le chiffrement pour votre instance Block Storage for VPC, vous pouvez également utiliser un secret Kubernetes si vous souhaitez coder le CRN de clé racine Key Protect en base64 au lieu de fournir la clé directement dans la classe de stockage personnalisée.
Modification de la classe de stockage par défaut
Avec la version, le 4.2 module complémentaire Block Storage for VPC de cluster définit la classe de stockage par défaut sur la ibmc-vpc-block-10iops-tier classe. Si vous disposez d'une classe de stockage par défaut autre que ibmc-vpc-block-10iops-tier et que vos PVC utilisent la classe de stockage par défaut, cela peut entraîner plusieurs classes de stockage par défaut qui peuvent entraîner des échecs de création de PVC. Pour utiliser une classe de stockage par défaut autre que ibmc-vpc-block-10iops-tier,
vous pouvez mettre à jour addon-vpc-block-csi-driver-configmap pour remplacer IsStorageClassDefault par false.
La classe de stockage par défaut du module complémentaire de cluster Block Storage for VPC est la classe de stockage ibmc-vpc-block-10iops-tier.
-
Éditez le
addon-vpc-block-csi-driver-configmapoc edit cm addon-vpc-block-csi-driver-configmap -n kube-system -
Remplacez le paramètre
IsStorageClassDefaultparfalse. -
Sauvegardez et quittez.
-
Attendez 15 minutes et vérifiez la modification en obtenant les détails de la classe de stockage
ibmc-vpc-block-10iops-tier.oc get sc ibmc-vpc-block-10iops-tier -o yaml
Création de votre propre classe de stockage
Créez votre propre classe de stockage personnalisée avec les paramètres préférés pour votre instance Block Storage for VPC. En utilisant le profil SDP, vous pouvez spécifier la capacité et la limite maximale de débit.
Les profils de performance SSD (SDP) sont disponibles à Dallas, Francfort, Londres, Madrid, Osaka, São Paulo, Sydney, Tokyo, Toronto et Washington D.C. La création d'instantanés pour les profils de performances définis pour les SSD est disponible à Dallas, Francfort, Tokyo et Washington. D.C
Vous pouvez créer votre propre classe de stockage si vous le souhaitez :
- définir une valeur IOPS personnalisée ;
- configurer Block Storage for VPC avec un autre type de système de fichiers que
ext4; - configurer le chiffrement ;
- Mise en place d'une performance définie par le SSD.
Avant de commencer
-
Consultez la Référence des classes de stockage afin de déterminer le
profileque vous voulez utiliser pour votre classe de stockage. -
Vous pouvez également consulter les profils personnalisés si vous voulez spécifier une valeur IOPs personnalisée pour votre Block Storage for VPC.
-
Si vous souhaitez utiliser un profil de performance défini par le SSD (SDP), examinez la plage de capacité et les détails des IOP. Notez que lors de l'utilisation d'une performance définie par un SSD, la capacité du volume est déterminée par les IOP et le débit que vous spécifiez.
-
Vous pouvez utiliser une classe de stockage existante comme point de départ pour créer votre propre classe. Enregistrez les détails d'une classe de stockage existante à l'aide de la commande
oc get sc <storageclass> -o yaml. -
Pour maintenir les coûts bas, vous pouvez initialement provisionner un PVC avec une faible capacité, un IOPS minimum et un débit minimum en utilisant la classe de stockage
ibmc-vpc-block-sdp, qui a un minimum de 3000 IOPS et 1000 Throughput (Mbps). Après le provisionnement, vous pouvez accéder au PVC et ajuster l'IOPS et le débit au fur et à mesure que les besoins sont mieux définis.
Pour créer une classe de stockage personnalisée :
-
Créez un fichier de configuration de classe de stockage personnalisé au format suivant. Choisissez entre une classe de stockage de première et de deuxième génération.
Exemple de première génération :
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- Entrez un nom pour votre classe de stockage.
profile- Saisissez le profil que vous avez sélectionné à l'étape précédente. Choisissez
general-purpose,sdp,5iops-tier,10iops-tier, ou custom utilisez une valeur IOPs personnalisée. Pour connaître les tailles de stockage prises en charge pour un profil spécifique, voir Profil Tiered IOPS. Toute PVC qui utilise cette classe de stockage doit spécifier une valeur de taille comprise dans cette plage. csi.storage.k8s.io/fstype- Dans les paramètres, entrez le système de fichiers pour votre instance Block Storage for VPC. Choisissez
xfs,ext3ouext4. Si vous souhaitez modifier la propriété ou les autorisations de votre volume, vous devez spécifiercsi.storage.k8s.io/fstypedans votre propre classe de stockage et votre PVC doit avoirReadWriteOncecommeaccessMode. Le pilote Block Storage for VPC utilise le piloteReadWriteOnceWithFSTypefsGroupPolicy. Pour plus d'informations, voir la documentation du pilote CSI. encrypted- Dans les paramètres, entrez
truepour créer une classe de stockage qui configure le chiffrement pour votre volume Block Storage for VPC. Si vous définissez cette option surtrue, vous devez fournir la clé racine CRN de votre instance de service Key Protect que vous souhaitez utiliser dansparameterencryptionKey. Pour plus d'informations sur le chiffrement de vos données, voir Configuration d'un chiffrement pour votre instance Block Storage for VPC. encryptionKey- Si vous avez saisi
truepourparameters.encrypted, saisissez la clé racine CRN de votre instance de service Key Protect que vous souhaitez utiliser pour crypter votre volume Block Storage for VPC. Pour plus d'informations sur le chiffrement de vos données, voir Configuration d'un chiffrement pour votre instance Block Storage for VPC. zone- Dans les paramètres, entrez la zone VPC dans laquelle vous souhaitez créer l'instance Block Storage for VPC. Prenez soin d'utiliser une zone à laquelle vos noeuds worker sont connectés. Pour répertorier les zones VPC utilisées par vos
nœuds de travail, exécutez
ibmcloud oc cluster get --cluster <cluster_name_or_ID>et consultez le champ Worker Zones (Zones de travail ) dans les résultats de l'interface CLI. Si vous ne spécifiez pas de zone, l'une des zones de noeud worker est automatiquement sélectionnée pour votre instance Block Storage for VPC. region- La région du noeud worker où vous souhaitez connecter le stockage.
tags- Dans les paramètres, entrez une liste de balises séparées par des espaces à appliquer à votre instance Block Storage for VPC. Les étiquettes peuvent vous aider à trouver plus facilement des instances ou à regrouper vos instances en fonction de caractéristiques communes, telles que l'application ou l'environnement pour lesquels elles sont utilisées.
iops- Si vous avez saisi
customousdppourprofile, saisissez une valeur pour les IOP que vous voulez que Block Storage for VPC utilise. Reportez-vous au tableau des profils IOPS personnalisés de Block Storage for VPC pour la liste des plages d'IOPS prises en charge par taille de volume. throughput- Entrez cette valeur si vous utilisez un profil
sdp. Pour plus d'informations, voir les détails des IOP et du débit pour le profil SDP reclaimPolicy- Entrez la politique de récupération pour votre classe de stockage. Si vous voulez conserver supprimer le volume persistant (PV), l'unité de stockage physique et vos données lorsque vous supprimez la PVC, entrez
Retain. Si vous souhaitez supprimer le volume persistant (PV), l'unité de stockage physique et vos données lorsque vous retirez la PVC, entrezDelete. allowVolumeExpansion- Entrez la règle d'extension de volume pour votre classe de stockage. Si vous souhaitez autoriser l'extension de volume, entrez
true. Si vous ne souhaitez pas autoriser l'extension de volume, entrezfalse. volumeBindingMode- Choisissez de retarder la création de l'instance Block Storage for VPC jusqu'à ce que le premier pod utilisant ce stockage soit prêt à être planifié. Pour retarder la création, entrez
WaitForFirstConsumer. Pour créer l'instance en même temps que la réservation de volume persistant, entrezImmediate.
Exemple de deuxième génération :
Si vous provisionnez un PVC 9.6TB en utilisant la classe de stockage
ibmc-vpc-block-5iops-tierde première génération, l'IOPS maximum est de 48 000 et le débit maximum est de 6144 Mbps. Cependant, avec la classe de stockage de deuxième générationibmc-vpc-block-sdp-max-bandwidth, l'IOPS maximum est de 64 000 et le débit maximum est de 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" -
Créez la classe de stockage personnalisée dans votre cluster.
oc apply -f custom-storageclass.yaml -
Vérifiez que votre classe de stockage est disponible dans le cluster.
oc get scExemple de sortie
NAME PROVISIONER AGE <custom-storageclass> vpc.block.csi.ibm.io 4m26s -
Suivez les étapes de la rubrique Ajout d'une instance Block Storage for VPC à vos applications pour créer une PVC avec votre classe de stockage personnalisée afin de mettre à disposition Block Storage for VPC. Ensuite, montez ce stockage sur un modèle d'application.
-
Facultatif : Vérifiez votre type de système de fichiers Block Storage for VPC.
Vérification de votre système de fichiers Block Storage for VPC
Vous pouvez créer une classe de stockage personnalisée pour mettre à disposition Block Storage for VPC avec un autre système de fichiers, tel que xfs ou ext3. Par défaut, toutes les instances Block Storage for VPC
sont mises à disposition avec un système de fichiers ext4.
-
Suivez la procédure de création d'une classe de stockage personnalisée avec le système de fichiers que vous souhaitez utiliser.
-
Suivez les étapes 4 à 9 de la rubrique Ajout d'une instance Block Storage for VPC à vos applications pour créer une PVC avec votre classe de stockage personnalisée afin de mettre à disposition une instance Block Storage for VPC avec un autre système de fichiers. Ensuite, montez ce stockage sur un pod d'application.
Le montage du stockage par votre application et le passage de celle-ci à l'état En cours d'exécution peuvent prendre quelques minutes.
-
Vérifiez que votre stockage est monté avec le système de fichiers approprié. Répertoriez les pods dans votre cluster et notez le nom du pod que vous avez utilisé pour monter votre stockage.
oc get pods -
Connectez-vous à votre pod.
oc exec <pod_name> -it bash -
Répertoriez les chemins de montage au sein de votre pod.
mount | grep /dev/xvdgExemple de sortie pour
xfs./dev/xvdg on /test type xfs (rw,relatime,attr2,inode64,noquota) -
Quittez votre pod.
exit
mise à jour VolumeAttachLimit
Dans les versions 5.2 et ultérieures du module complémentaire de cluster Block Storage for VPC, vous pouvez éditer le nombre maximal de volumes pouvant être connectés à chaque noeud en éditant la mappe de configuration. La valeur
par défaut est 12.
Votre compte doit être approuvé pour utiliser cette fonction.
-
Editez la ressource configmap. Remplacez
VALUEpar la limite de connexion de volume que vous souhaitez définir.kubectl patch configmap/addon-vpc-block-csi-driver-configmap \ -n kube-system \ --type merge \ -p '{"data":{"VolumeAttachmentLimit":"VALUE"}}' -
Attendez que les pods
ibm-vpc-block-csi-nodede l'espace de nomkube-systemsoient redémarrés. Vérifiez que les pods ont redémarré.kubectl get pods -n kube-system -w| grep block-csi -
Vous pouvez désormais connecter des volumes à vos noeuds worker à l'aide de la mise à disposition dynamique ou en créant manuellement les pièces jointes. Pour plus d'informations, voir Ajout de Block Storage for VPC à vos applications ou Utilisation d'une instance Block Storage for VPC existante.
Stockage de vos paramètres PVC personnalisés dans un secret Kubernetes
Spécifiez vos paramètres PVC dans un secret Kubernetes et référencez ce secret dans une classe de stockage personnalisée. Ensuite, utilisez la classe de stockage personnalisée pour créer une PVC avec les paramètres personnalisés que vous avez définis dans votre secret.
- Quelles sont les options dont je dispose pour utiliser le secret Kubernetes?
- En tant qu'administrateur de cluster, vous pouvez choisir si vous souhaitez autoriser chaque utilisateur de cluster à remplacer les paramètres par défaut d'une classe de stockage, ou si vous souhaitez créer un secret que tous les utilisateurs dans votre cluster doivent utiliser et qui applique le codage base64 pour votre CRN de clé racine Key Protect.
- Tous les utilisateurs peuvent personnaliser les paramètres par défaut
- Dans ce scénario, l'administrateur de cluster crée une classe de stockage personnalisée avec les paramètres PVC par défaut et une référence à un secret Kubernetes générique. Les utilisateurs de cluster peuvent remplacer les paramètres par défaut de la classe de stockage en créant un secret Kubernetes avec les paramètres PVC de leur choix. Pour que les paramètres personnalisés définis dans le secret soient appliqués à votre instance Block Storage for VPC, vous devez créer une PVC portant le même nom que votre secret Kubernetes.
- Appliquer le codage en base64 pour la clé racine Key Protect
- Dans ce scénario, vous créez une classe de stockage personnalisée avec les paramètres PVC par défaut et une référence à un secret Kubernetes statique qui remplace ou améliore les paramètres par défaut de la classe de stockage personnalisée. Vos utilisateurs de cluster ne peuvent pas remplacer les paramètres par défaut en créant leur propre secret Kubernetes. A la place, vos utilisateurs de cluster doivent mettre à disposition Block Storage for VPC avec la configuration que vous avez choisie dans votre classe de stockage personnalisée et votre secret. Contrairement à la création d'une classe de stockage personnalisée uniquement, l'utilisation de cette méthode vous permet d'imposer le codage en base64 pour le CRN de clé racine de votre instance de service Key Protect lorsque vous souhaitez chiffrer les données dans votre instance Block Storage for VPC.
- Que dois-je savoir avant d'utiliser le secret Kubernetes pour mes paramètres PVC?
- Certains paramètres PVC, tels que
reclaimPolicy,fstypeouvolumeBindingMode, ne peuvent pas être définis dans le secret Kubernetes et doivent l'être dans la classe de stockage. En tant qu'administrateur du cluster, si vous souhaitez permettre à vos utilisateurs de cluster de remplacer vos paramètres par défaut, vous devez prendre soin de configurer suffisamment de classes de stockage personnalisées qui font référence à un secret Kubernetes générique afin que vos utilisateurs puissent mettre à disposition Block Storage for VPC avec différents paramètresreclaimPolicy,fstypeetvolumeBindingMode.
Procédure visant à autoriser chaque utilisateur à personnaliser les paramètres PVC par défaut
-
En tant qu'administrateur de cluster, suivez la procédure de création d'une classe de stockage personnalisée. Dans le fichier YAML de classe de stockage personnalisée, référencez le secret Kubernetes dans la section
metadata.parameterscomme indiqué ci-après. Prenez soin d'ajouter le code tel qu'il est et de ne pas modifier les noms de variable.csi.storage.k8s.io/provisioner-secret-name: ${pvc.name} csi.storage.k8s.io/provisioner-secret-namespace: ${pvc.namespace} -
En tant qu'utilisateur du cluster, créez un secret Kubernetes qui personnalise les paramètres par défaut de la classe de stockage.
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- Entrez un nom pour votre secret Kubernetes.
namespace- Entrez l'espace de noms dans lequel vous désirez créer votre secret. Pour que le secret puisse être référencé dans votre PVC, celle-ci doit être créée dans le même espace de noms.
iops- Dans la section string.data, entrez la plage d'IOPS que vous souhaitez autoriser pour votre instance Block Storage for VPC. La plage que vous entrez doit correspondre au niveau Block Storage for VPC que vous prévoyez d'utiliser.
zone- Dans la section string.data, entrez la zone VPC dans laquelle vous souhaitez créer l'instance Block Storage for VPC. Prenez soin d'utiliser une zone à laquelle vos noeuds worker sont connectés. Pour répertorier les zones VPC utilisées
par vos nœuds de travail, exécutez
ibmcloud oc cluster get --cluster <cluster_name_or_ID>et consultez le champ Worker Zones (Zones de travail ) dans les résultats de l'interface CLI. Si vous ne spécifiez pas de zone, l'une des zones de noeud worker est automatiquement sélectionnée pour votre instance Block Storage for VPC. tags- Dans la section string.data, entrez une liste de balises séparées par des virgules à utiliser lorsque votre PVC est créée. Les étiquettes peuvent vous aider à retrouver votre instance de stockage après sa création.
resourceGroup- Dans la section des données de la chaîne, saisissez l'ID du groupe de ressources auquel vous souhaitez que votre instance Block Storage for VPC ait accès. Si vous n'entrez pas de groupe de ressources, l'instance est automatiquement autorisée à accéder aux ressources du groupe de ressources auquel votre cluster appartient.
encrypted- Dans la section des données de la chaîne, entrez
truepour créer un secret qui configure le cryptage des volumes Block Storage for VPC. Si vous définissez cette option surtrue, vous devez fournir la clé racine CRN de votre instance de service Key Protect que vous souhaitez utiliser dansparameters.encryptionKey. Pour plus d'informations sur le chiffrement de vos données, voir Configuration du chiffrement pour votre instance Block Storage for VPC. encryptionKey- Dans la section des données, si vous avez saisi
truepourparameters.encrypted, saisissez la clé racine CRN de votre instance de service Key Protect que vous souhaitez utiliser pour crypter vos volumes Block Storage for VPC. Pour utiliser votre CRN de clé racine dans un secret, vous devez d'abord le convertir en base64 en exécutantecho -n "<root_key_CRN>" | base64. Pour plus d'informations sur le chiffrement de vos données, voir Configuration d'un chiffrement pour votre instance Block Storage for VPC.
-
Créez votre secret Kubernetes.
oc apply -f secret.yaml -
Suivez les étapes de la rubrique Ajout d'une instance Block Storage for VPC à vos applications pour créer une PVC avec vos paramètres personnalisés. Prenez soin de créer la PVC avec la classe de stockage personnalisée que l'administrateur de cluster a créée et d'utiliser pour votre PVC le même nom que celui que vous avez affecté à votre secret. Le fait d'utiliser le même nom pour le secret et la PVC déclenche l'application des paramètres du secret dans votre PVC par le fournisseur de stockage.
Mise en application du codage en base64 pour le CRN de clé racine Key Protect
-
En tant qu'administrateur du cluster, créez un secret Kubernetes qui inclut la valeur codée en base64 pour votre CRN de clé racine Key Protect. Pour extraire le CRN de clé racine, voir Configuration d'un chiffrement pour votre instance 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- Entrez un nom pour votre secret Kubernetes.
namespace- Entrez l'espace de noms dans lequel vous désirez créer votre secret. Pour que le secret puisse être référencé dans votre PVC, celle-ci doit être créée dans le même espace de noms.
encrypted- Dans la section des données de la chaîne, entrez
truepour créer un secret qui configure le cryptage des volumes Block Storage for VPC. Si vous définissez cette option surtrue, vous devez fournir la clé racine CRN de votre instance de service Key Protect que vous souhaitez utiliser dansparameters.encryptionKey. Pour plus d'informations sur le chiffrement de vos données, voir Configuration du chiffrement pour votre instance Block Storage for VPC. encryptionKey- Dans la section des données, si vous avez saisi
truepourparameters.encrypted, saisissez la clé racine CRN de votre instance de service Key Protect que vous souhaitez utiliser pour crypter votre volume Block Storage for VPC. Pour utiliser votre CRN de clé racine dans un secret, vous devez d'abord le convertir en base 64 en exécutantecho -n "<root_key_CRN>" | base64. Pour plus d'informations sur le chiffrement de vos données, voir Configuration d'un chiffrement pour votre instance Block Storage for VPC.
-
Vérifiez le secret Kubernetes.
oc apply -f secret.yaml -
Suivez la procédure de création d'une classe de stockage personnalisée. Dans le fichier YAML de classe de stockage personnalisée, référencez le secret Kubernetes dans la section
metadata.parameterscomme indiqué ci-après. Prenez soin d'entrer le nom du secret Kubernetes que vous avez créé précédemment et l'espace de noms dans lequel vous avez créé le secret.csi.storage.k8s.io/provisioner-secret-name: <secret_name> csi.storage.k8s.io/provisioner-secret-namespace: <secret_namespace> -
En tant qu'utilisateur de cluster, suivez les étapes décrites dans la rubrique Ajout d'une instance Block Storage for VPC à vos applications pour créer une PVC à partir de votre classe de stockage personnalisée.
Configuration de l'extension de volume
Pour fournir des volumes qui prennent en charge l'extension, vous devez utiliser la classe de stockage ayant allowVolumeExpansion définie sur true.
Vous pouvez étendre uniquement des volumes montés par un pod d'application.
-
Si vous n'utilisez pas la version
4.2ou une version ultérieure du module complémentaire, mettez à jour le module complémentaire Block Storage for VPC cluster dans votre cluster. -
Création d'un PVC qui utilise une classe de stockage qui prend en charge l'extension de volume.
-
Déployez une application qui utilise votre réservation de volume persistant (PVC). Lorsque vous créez votre application, notez la valeur spécifiée pour
mountPath. -
Une fois la PVC montée par un pod d'application, vous pouvez étendre le volume en modifiant la valeur de la zone
spec.resources.requests.storagedans votre PVC. Pour étendre le volume, modifiez la PVC et augmentez la valeur indiquée dans la zonespec.resources.requests.storage.oc edit pvc <pvc-name>Exemple
spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi -
Enregistrez et fermez le PVC.
-
Facultatif : vérifiez que le volume est étendu. Obtenez les détails de votre PVC et notez le nom du volume persistant (PV).
oc get pvc <pvc-name> -
Décrivez votre PV et notez l'ID de volume.
oc describe PV -
Obtenez les détails du volume Block Storage for VPC et vérifiez la capacité.
ibmcloud is vol <volume-ID>
Extension manuelle des volumes avant la version complémentaire 4.2
Effectuez les étapes suivantes pour étendre manuellement vos volumes Block Storage for VPC existants qui ont été créés avant la version 4.2 du module complémentaire.
Vous pouvez étendre uniquement des volumes montés par un pod d'application.
-
Obtenez les détails de votre application et notez le nom de la PVC ainsi que le chemin de montage (
mountPath).oc get pod <pod-name> -n <pod-namespace> -o yaml -
Obtenez les détails de votre PVC et notez le nom du volume persistant (PV).
oc get pvc -
Décrivez votre PV et obtenez l'ID volume (
volumeId).oc describe pv `pv-name` | grep volumeIdExemple de sortie pour l'ID volume
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1.volumeId=r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1 -
Redimensionnez le volume à l'aide d'une demande PATCH. L'exemple suivant redimensionne un volume à 250 Gio.
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>- Votre jeton IAM. Pour extraire votre jeton IAM, exécutez la commande
ibmcloud iam oauth-tokens. <region>- La région dans votre cluster, par exemple
us-south. <volumeId>- L'ID du volume que vous avez extrait précédemment. Par exemple,
r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1. <capacity>- Capacité accrue dans Gio, par exemple
250.
-
Connectez-vous à votre pod d'application.
oc exec <pod-name> -it -- bash -
Exécutez la commande suivante pour utiliser les fichiers binaires de l'hôte.
chroot /host -
Extrayez les détails du système de fichiers et notez le chemin de
Filesystemà mettre à jour. Vous pouvez égalementgreppour le chemin de montage tel que spécifié dans votre pod d'application.df -h | grep <mount-path>.df -hExemple de sortie
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 -
Redimensionnez le système de fichiers.
sudo resize2fs <filesystem-path>Exemple de commande
sudo resize2fs /dev/vdg -
Vérifiez que le système de fichiers est redimensionné.
df -h
Sauvegarde et restauration de données
Les données sur Block Storage for VPC sont sécurisées dans les zones d'erreur redondantes de votre région. Pour sauvegarder manuellement vos données, utilisez la commande Kubernetes oc cp.
Vous pouvez utiliser la commande oc cp pour copier des fichiers et des répertoires vers et depuis des pods
ou des conteneurs spécifiques dans votre cluster
Avant de commencer : accédez à votre cluster Red Hat OpenShift.
Pour sauvegarder ou restaurer des données, choisissez l'une des options suivantes :
Copiez les données de votre machine locale vers un pod de votre cluster.
oc cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath>
Copiez les données d'un pod de votre cluster vers votre machine locale.
oc cp <namespace>/<pod>:<pod_filepath>/<filename> <local_filepath>/<filename>
Copiez les données de votre machine locale vers un conteneur spécifique qui s'exécute dans un pod de votre cluster.
oc cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath> -c CONTAINER
Description de la capacité de demande de volume
Le pilote VPC Block CSI calcule la capacité du volume à l'aide de la formule suivante.
-
Si la valeur est fournie dans
Gi: rBytes(requestedBytes) = X * 1024^3 -
Si la valeur est fournie dans
G: rBytes(requestedBytes) = X * 10^9
La valeur demandée est égale à (((rBytes+ GiB - 1) / GiB) * GiB) / GiB.
Exemple :
- Si la valeur
20Giest fournie, en appliquant la formule ci-dessus, le volume créé est20GB. - Si la valeur
20Gest fournie, le volume créé est19GB.
Parfois, la capacité du volume créé est inférieure à la valeur demandée. Notez que la facturation s'applique au volume créé, et non au volume demandé.
Attribution de profils de confiance au stockage en bloc
En raison d'un problème connu, les mises à jour des balises utilisateur sur les Block Storage volumes VPC peuvent ne pas s'afficher lorsqu'un profil de confiance est implémenté. Ce problème n'est pas présent dans les clusters qui n'utilisent pas de profils de confiance.
Vous pouvez utiliser des profils de confiance pour accorder à différentes identités IBM Cloud l'accès aux ressources de votre compte, y compris à vos solutions de stockage. Les profils de confiance centralisent le contrôle d'accès, éliminent le besoin de clés API à longue durée de vie et vous permettent de limiter les autorisations au strict minimum requis pour une tâche spécifique. Pour plus d'informations, voir Configuration d'un profil de confiance pour les composants de stockage.