Configuration de File Storage for Classic
IBM Cloud File Storage for Classic est une solution File Storage for Classic NFS persistante, rapide et flexible en réseau que vous pouvez ajouter à vos applications en utilisant des volumes persistants (PV) Kubernetes. 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 savoir si IBM Cloud File Storage for Classic est la solution de stockage qui vous convient, consultez la section « Choisir une solution de stockage ». Pour plus d'informations sur la tarification, voir Tarification.
Infrastructure classique
Guide de démarrage rapide pour File Storage for Classic
Dans ce guide de démarrage rapide, vous allez créer un volume « endurance » File Storage for Classic de type « 24Gi » dans votre cluster en créant un PVC afin de provisionner dynamiquement ce volume. Ensuite, vous créez un déploiement d'application qui monte votre PVC.
Vous utilisez File Storage for Classic dans votre cluster pour la première fois ? Revenez ici une fois que vous vous êtes familiarisé avec les configurations de File Storage for Classic.
-
Créez un fichier pour votre PVC et nommez-le
pvc.yaml.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: silver-pvc labels: billingType: hourly region: # Example: us-south zone: # Example: dal13 spec: accessModes: - ReadWriteMany resources: requests: storage: 24Gi storageClassName: ibmc-file-silver -
Créez la PVC dans votre cluster.
kubectl apply -f pvc.yaml -
Une fois que votre PVC
silver-pvcest liée, créez un déploiement d'application qui l'utilise. Créez un fichier pour votre déploiement et nommez-ledeployment.yaml.apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: spec: selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - image: # Your contanerized app image. name: my-container volumeMounts: - name: my-volume mountPath: /mount-path volumes: - name: my-volume persistentVolumeClaim: claimName: silver-pvc -
Créez le déploiement dans votre cluster.
kubectl apply -f deployment.yaml
Pour plus d'informations, voir les liens suivants.
Détermination de la configuration de File Storage for Classic
IBM Cloud® Kubernetes Service fournit des classes de stockage prédéfinies pour File Storage for Classic que vous pouvez utiliser pour mettre à disposition File Storage for Classic avec une configuration spécifique.
Toutes les classes de stockage indiquent le type File Storage for Classic à mettre à disposition, y compris la taille disponible, les opérations IOPS, le système de fichiers, ainsi que la règle de conservation.
Une fois que vous avez mis à disposition un type de stockage à l'aide d'une classe de stockage, vous ne pouvez pas modifier le type ou la règle de conservation de l'unité de stockage. Vous pouvez toutefois modifier la taille et le nombre d'IOPS si vous souhaitez augmenter la capacité de stockage ou les performances. Pour modifier le type et la politique de conservation de votre espace de stockage, vous devez créer une nouvelle instance de stockage et copier les données de l'ancienne instance vers la nouvelle.
Avant de commencer : Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.
Pour déterminer une configuration de stockage :
-
Répertoriez les classes de stockage disponibles dans IBM Cloud® Kubernetes Service.
kubectl get sc | grep fileExemple de sortie
NAME TYPE ibmc-file-bronze (default) ibm.io/ibmc-file ibmc-file-custom ibm.io/ibmc-file ibmc-file-gold ibm.io/ibmc-file ibmc-file-retain-bronze ibm.io/ibmc-file ibmc-file-retain-custom ibm.io/ibmc-file ibmc-file-retain-gold ibm.io/ibmc-file ibmc-file-retain-silver ibm.io/ibmc-file ibmc-file-silver ibm.io/ibmc-file -
Examinez la configuration d'une classe de stockage.
kubectl describe storageclass <storageclass_name>Pour plus d'informations sur chaque classe de stockage, voir Référence des classes de stockage. Si vous ne trouvez pas ce que vous recherchez, pensez à créer votre propre classe de stockage personnalisée. Pour commencer, consultez les exemples de classes de stockage personnalisées.
-
Choisissez le type de stockage de fichiers, les IOPS, la politique de récupération et la facturation que vous souhaitez utiliser.
Types de stockage de fichiers
Choisissez le type de File Storage for Classic que vous souhaitez mettre à disposition.
- Classes de stockage Bronze, Silver et Gold
- Ces classes de stockage fournit un stockage d'endurance. Le stockage Endurance vous permet de choisir la taille de stockage en gigaoctets à des niveaux d'opérations d'entrée-sortie par seconde prédéfinis.
- Classe de stockage personnalisée
- Cette classe de stockage fournit un stockage de performance. Avec le stockage Performance, vous disposez d'un contrôle accru sur la taille de stockage et les opérations d'entrée-sortie par seconde.
IOPS
Choisissez la taille et le nombre d'IOPS pour File Storage for Classic. La taille et le nombre d'IOPS définissent le nombre total d'IOPS (opérations d'entrée-sortie par seconde) qui sert d'indicateur pour mesurer la rapidité de votre stockage. Plus votre stockage comporte d'IOPS, plus il traite rapidement les opérations de lecture/écriture.
- Classes de stockage Bronze, Silver et Gold
- Ces classes de stockage sont fournies avec un nombre fixe d'IOPS par gigaoctet et sont mises à disposition sur les disques durs SSD. Le nombre total d'IOPS dépend de la taille de stockage que vous choisissez. Vous pouvez sélectionner tout nombre entier représentant la taille en gigaoctets dans la plage de taille autorisée, par exemple 20 Gi, 256 Gi ou 11854 Gi. Pour déterminer le nombre total d'IOPS, vous devez multiplier les IOPS par la taille sélectionnée. Par exemple, si vous sélectionnez une taille File Storage for Classic de 1000 Gi dans la classe de stockage Silver offrant 4 IOPS par Go, votre stockage dispose d'un total de 4000 IOPS.
| Classe de stockage | IOPS par gigaoctet | Plage de tailles en gigaoctets |
|---|---|---|
| Bronze | 2 IOPS/Go | 20 - 12000 Gi |
| Silver | 4 IOPS/Go | 20 - 12000 Gi |
| Gold | 10 IOPS/Go | 20 - 4000 Gi |
- Classe de stockage personnalisée
- Lorsque vous choisissez cette classe de stockage, vous avez plus de contrôle sur la taille et l'IOPS que vous souhaitez. En ce qui concerne la taille, vous pouvez sélectionner n'importe quel nombre entier comme valeur de gigaoctets dans la plage de tailles autorisée. La taille que vous choisissez détermine la plage d'IOPS dont vous pourrez bénéficier. Vous pouvez choisir une valeur d'IOPS multiple de 100 comprise dans la plage spécifiée. Le nombre d'IOPS que vous choisissez est statique et ne s'adapte pas à la taille du stockage. Par exemple, si vous choisissez 40Gi avec 100 IOPS, le nombre total d'IOPS restera 100.
- Le rapport IOPS/gigaoctet détermine le type de disque dur mis à votre disposition. Par exemple, si vous avez 500Gi à 100 IOPS, votre rapport IOPS/gigaoctet est 0,2. Un stockage avec un rapport inférieur ou égal à 0,3 est fourni sur des disques durs SATA. Si votre rapport est supérieur à 0,3, votre stockage est fourni sur des disques durs SSD.
| Plage de tailles en gigaoctets | Plage d'IOPS en multiples de 100 |
|---|---|
| 20 - 39 Gi | 100 - 1000 IOPS |
| 40 - 79 Gi | 100 - 2000 IOPS |
| 80 - 99 Gi | 100 - 4000 IOPS |
| 100 - 499 Gi | 100 - 6000 IOPS |
| 500 - 999 Gi | 100 - 10000 IOPS |
| 1000 - 1999 Gi | 100 - 20000 IOPS |
| 2000 - 2999 Gi | 200 - 40000 IOPS |
| 3000 - 3999 Gi | 200 - 48000 IOPS |
| 4000 - 7999 Gi | 300 - 48000 IOPS |
| 8000 - 9999 Gi | 500 - 48000 IOPS |
| 10000 - 12000 Gi | 1000 - 48000 IOPS |
Stratégie de récupération
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 d'infrastructure 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 la solution File Storage for Classic existante. - Si vous souhaitez que le volume persistant, les données et votre unité File Storage for Classic physique soient supprimés en même temps que la PVC, choisissez une classe de stockage sans
retain.
Type de facturation
Choisissez entre une facturation à l'heure ou au mois Consultez la tarification pour plus d'informations.
Par défaut, toutes les unités File Storage for Classic sont mises à disposition avec une facturation à l'heure.
Si vous optez pour un type de facturation au mois, lorsque vous supprimez le stockage persistant, vous devez quand même payer les frais mensuels, même si vous ne l'avez utilisé que pendant très peu de temps.
Ajout de File Storage for Classic à des applications
Créez une revendication de volume persistant (PVC) afin de provisionner dynamiquement des volumes de stockage « File Storage for Classic » 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 d'infrastructure IBM Cloud.
Avant de commencer :
- Si vous disposez d'un pare-feu, autorisez l'accès sortant pour les plages d'adresses IP de l'infrastructure IBM Cloud des zones dans lesquelles résident vos clusters, de manière à pouvoir créer des réservations de volume persistant (PVC).
- Optez pour une classe de stockage prédéfinie ou créez une classe de stockage personnalisée.
Vous cherchez à déployer File Storage for Classic dans un ensemble avec état (StatefulSet) ? Pour plus d'informations, voir Utilisation de File Storage for Classic dans un ensemble avec état.
Pour ajouter File Storage for Classic, procédez comme suit :
-
Créez un fichier de configuration pour définir votre PVC et sauvegardez la configuration sous forme de fichier
.yaml.Exemple relatif aux classes de stockage bronze, silver et gold :
Le fichier
.yamlsuivant crée une réservation nomméemypvcde la classe de stockage"ibmc-file-silver", facturée au mois ("monthly"), avec une taille en gigaoctets de24Gi.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mypvc labels: billingType: "monthly" region: us-south zone: dal13 spec: accessModes: - ReadWriteMany resources: requests: storage: 24Gi storageClassName: ibmc-file-silverExemple d'utilisation de votre propre classe de stockage.
Le fichier
.yamlsuivant crée une réservation nomméemypvcde la classe de stockageibmc-file-retain-custom, facturée à l'heure ("hourly"), avec une taille en gigaoctets de45Giet"300"IOPS.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mypvc labels: billingType: "hourly" region: us-south zone: dal13 spec: accessModes: - ReadWriteMany resources: requests: storage: 45Gi iops: "300" storageClassName: ibmc-file-retain-customname- Entrez le nom de la réservation de volume persistant (PVC).
billingType- Indiquez la fréquence de calcul de votre facture de stockage, au mois ("monthly") ou à l'heure ("hourly"). Si vous ne spécifiez pas de type de facturation, le stockage est mis à disposition avec le type de facturation horaire.
region- Facultatif : indiquez la région dans laquelle vous souhaitez mettre à disposition File Storage for Classic. Pour vous connecter à votre stockage, créez le stockage dans la région où se trouve votre cluster. Si vous spécifiez la région,
vous devez également indiquer une zone. Si vous ne spécifiez pas de région ou que la région spécifiée est introuvable, le stockage est créé dans la même région que votre cluster. Pour obtenir la région de votre cluster, exécutez
ibmcloud ks cluster get --cluster <cluster_name_or_ID>et recherchez le préfixe de région dans URL du maître, commeeu-dedanshttps://c2.eu-de.containers.cloud.ibm.com:11111. Au lieu de spécifier une région et une zone dans la réservation de volume persistant, vous pouvez également spécifier ces valeurs dans une classe de stockage personnalisée. Utilisez ensuite votre classe de stockage dans la sectionmetadata.annotations.volume.beta.kubernetes.io/storage-classde votre PVC. Si la région et la zone sont spécifiées dans la classe de stockage et dans la PVC, les valeurs dans la PVC sont prioritaires. zone- Facultatif : indiquez la zone dans laquelle vous souhaitez mettre à disposition File Storage for Classic. Pour utiliser votre stockage dans une application, créez le stockage dans la zone où se trouve votre noeud worker. Pour afficher
la zone de votre nœud worker, exécutez
ibmcloud ks worker ls --cluster <cluster_name_or_ID>et consultez la colonne Zone de votre sortie CLI. Si vous spécifiez la zone, vous devez également indiquer une région. Si vous ne spécifiez pas de zone ou que la zone spécifiée n'est pas trouvée dans un cluster à zones multiples, la zone est sélectionnée sur une base de permutation circulaire. Au lieu de spécifier une région et une zone dans la réservation de volume persistant, vous pouvez également spécifier ces valeurs dans une classe de stockage personnalisée. Utilisez ensuite votre classe de stockage dans la sectionmetadata.annotations.volume.beta.kubernetes.io/storage-classde votre PVC. Si la région et la zone sont spécifiées dans la classe de stockage et dans la PVC, les valeurs dans la PVC sont prioritaires. accessMode- Indiquez l'une des options suivantes.
ReadWriteMany: la réservation de volume persistant peut être montée par plusieurs pods. Tous les pods peuvent effectuer des opérations de lecture et d'écriture dans le volume.ReadOnlyMany: la réservation de volume persistant peut être montée par plusieurs pods. Tous les pods ont un accès en lecture seule.ReadWriteOnce: la réservation de volume persistant ne peut être montée que par un seul pod. Ce pod peut effectuer des opérations de lecture et d'écriture dans le volume.
storage- Entrez la taille pour File Storage for Classic, en gigaoctets (Gi). Une fois que votre stockage est mis à disposition, vous ne pouvez pas modifier la taille de votre File Storage for Classic. Veillez à indiquer une taille correspondant à la quantité de données que vous envisagez de stocker.
iops- Cette option n'est disponible que pour vos propres classes de stockage personnalisées (
ibmc-file-custom / ibmc-file-retain-custom). Indiquez le nombre total d'IOPS pour le stockage, en choisissant un multiple de 100 compris dans la plage autorisée. Si vous choisissez une valeur IOPS autre que celle répertoriée, la valeur IOPS est arrondie à la valeur supérieure. storageClassName- Nom de la classe de stockage que vous envisagez d'utiliser pour mettre à disposition File Storage for Classic. Vous pouvez choisir l'une des classes de stockage fournies par IBM ou créer votre propre classe de stockage.
Si vous ne spécifiez pas de classe de stockage, le PV est créé avec la classe de stockage par défaut
ibmc-file-bronze.
Si vous souhaitez utiliser une classe de stockage personnalisée, créez votre PVC avec le nom de classe de stockage correspondant, un nombre d'IOPS et une taille valides.
-
Créez le PVC (circuit virtuel permanent).
kubectl apply -f mypvc.yaml -
Vérifiez que votre PVC est créée et liée au volume persistant (PV).
kubectl describe pvc mypvcExemple de sortie
Name: mypvc Namespace: default StorageClass: "" Status: Bound Volume: pvc-0d787071-3a67-11e7-aafc-eef80dd2dea2 Labels: <none> Capacity: 20Gi Access Modes: RWX Events: FirstSeen LastSeen Count From SubObjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 3m 3m 1 {ibm.io/ibmc-file 31898035-3011-11e7-a6a4-7a08779efd33 } Normal Provisioning External provisioner is provisioning volume for claim "default/my-persistent-volume-claim" 3m 1m 10 {persistentvolume-controller } Normal ExternalProvisioning can't find provisioner "ibm.io/ibmc-file", expecting that a volume for the claim is provisioned either manually or via external software 1m 1m 1 {ibm.io/ibmc-file 31898035-3011-11e7-a6a4-7a08779efd33 } Normal ProvisioningSucceeded Successfully provisioned volume pvc-0d787071-3a67-11e7-aafc-eef80dd2dea2 -
Pour monter la mémoire dans votre déploiement, créez un fichier
.yamlde configuration et spécifiez le PVC qui lie le PV.Si vous disposez d'aune application qui nécessite un utilisateur qui n'est pas superutilisateur pour écrire dans le stockage de persistance ou une application qui nécessite que le chemin de montage soit la propriété du superutilisateur, voir Ajout d'un accès de non-superutilisateur à NFS File Storage for Classic.
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>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- 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- Nom du conteneur que vous désirez déployer dans votre cluster.
mountPath- Dans la section container.volume.mounts, entrez le chemin d'accès absolu du répertoire où est monté le volume dans le conteneur. Les données écrites dans le chemin de montage sont stockées sous le répertoire
rootdans votre instance File Storage for Classic physique. Si vous souhaitez partager un volume entre différentes applications, vous pouvez définir des sous-chemins d'accès au volume pour chacune de vos applications. name- Dans la section container.volume.mounts, entrez le nom du volume à monter sur votre pod.
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 qui lie le volume persistant que vous souhaitez utiliser.
-
Créez le déploiement.
kubectl apply -f <local_yaml_path> -
Vérifiez que le montage du volume persistant (PV) a abouti.
kubectl describe deployment <deployment_name>Le point de montage est indiqué dans la zone Volume Mounts et le volume est indiqué dans la zone Volumes.
Volume Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-tqp61 (ro) /volumemount from myvol (rw) ... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: mypvc ReadOnly: false
Utilisation d'une instance File Storage for Classic existante dans votre cluster
Si vous disposez déjà d'un périphérique de stockage physique que vous souhaitez utiliser dans votre cluster, vous pouvez créer manuellement le PV et le PVC afin de provisionner le stockage de manière statique.
Avant de commencer :
Vérifiez qu'au moins un noeud worker est présent dans la même zone que votre instance File Storage for Classic existante.
Préparation de votre stockage existant
Avant de commencer à monter votre stockage existant sur une application, vous devez obtenir toutes les informations nécessaires pour votre volume persistant (PV) et préparer le stockage pour le rendre accessible dans votre cluster.
- Pour le stockage provisionné avec une classe de stockage «
retain». - Si vous avez mis à disposition du stockage avec une classe de stockage
retain, lorsque vous retirez la réservation de volume persistant (PVC), le volume persistant (PV) et l'unité de stockage physique ne sont pas retirés automatiquement. Pour réutiliser le stockage dans votre cluster, vous devez d'abord supprimer le volume persistant restant.
Pour utiliser du stockage existant dans un cluster différent de celui où vous l'avez mis à disposition, suivez les étapes concernant le stockage créé en dehors du cluster pour ajouter le stockage dans le sous-réseau de votre noeud worker.
-
Répertoriez les volumes persistants (PV) existants.
kubectl get pvRecherchez le volume persistant (PV) appartenant à votre stockage persistant. Ce PV est à l'état
released. -
Obtenez les détails du volume persistant.
kubectl describe pv <pv_name> -
Notez les valeurs de
CapacityGb,storageClass,failure-domain.beta.kubernetes.io/region,failure-domain.beta.kubernetes.io/zone,serveretpath. -
Supprimez le volume persistant.
kubectl delete pv <pv_name> -
Vérifiez que le volume persistant (PV) est supprimé.
kubectl get pv
- Pour le stockage persistant provisionné en dehors du cluster
- Si vous envisagez d'utiliser du stockage existant que vous avez mis à disposition auparavant mais que vous n'avez encore jamais utilisé dans votre cluster, vous devez le rendre accessible dans le même sous-réseau que vos noeuds worker.
- Dans le portail d'infrastructure « IBM Cloud », cliquez sur « Stockage ».
- Cliquez sur File Storage for Classic et, dans le menu Actions, sélectionnez Autoriser l'hôte.
- Sélectionnez Sous-réseaux.
- Dans la liste déroulante, sélectionnez le sous-réseau de VLAN privé auquel est connecté votre noeud worker. Pour rechercher le sous-réseau de votre nœud worker, exécutez
ibmcloud ks worker ls --cluster <cluster_name>et comparez lePrivate IPde votre nœud worker au sous-réseau que vous avez trouvé dans la liste déroulante. - Cliquez sur Submit.
- Cliquez sur le nom de l'instance File Storage for Classic.
- Notez les zones
Mount Point,sizeetLocation. La zoneMount Points'affiche sous la forme<nfs_server>:<file_storage_path>.
Création d'un volume persistant et d'une revendication de volume persistant
-
Créez un fichier de configuration de stockage pour votre volume persistant. Incluez les valeurs que vous avez récupérées précédemment.
apiVersion: v1 kind: PersistentVolume metadata: name: mypv labels: failure-domain.beta.kubernetes.io/region: <region> failure-domain.beta.kubernetes.io/zone: <zone> spec: capacity: storage: "<size>" accessModes: - ReadWriteMany nfs: server: "<nfs_server>" path: "<file_storage_path>"name- Entrez le nom de l'objet PV à créer.
labels- Entrez la région et la zone que vous avez récupérées précédemment. Vous devez disposer d'au moins un nœud worker dans la même région et zone.
storage- Entrez la taille de stockage du partage de fichiers NFS existant que vous avez récupérée précédemment. Cette taille doit être indiquée en gigaoctets, par exemple 20Gi (20 Go) ou 1000Gi (1 To), et correspondre à celle du partage de fichiers existant.
accessMode- Indiquez l'une des options suivantes.
ReadWriteMany: la réservation de volume persistant peut être montée par plusieurs pods. Tous les pods peuvent effectuer des opérations de lecture et d'écriture dans le volume.ReadOnlyMany: la réservation de volume persistant peut être montée par plusieurs pods. Tous les pods ont un accès en lecture seule.ReadWriteOnce: la réservation de volume persistant ne peut être montée que par un seul pod. Ce pod peut effectuer des opérations de lecture et d'écriture dans le volume.
server- Entrez l'ID du serveur de partage de fichiers NFS que vous avez récupéré précédemment.
path- Entrez le chemin d'accès au partage de fichiers NFS que vous avez récupéré précédemment.
-
Créez le volume persistant dans votre cluster.
kubectl apply -f mypv.yaml -
Vérifiez que le volume persistant (PV) est créé.
kubectl get pv -
Créez un autre fichier de configuration pour créer 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
storageetaccessMode. La zonestorage-classdoit contenir une chaîne vide. Si l'un de ces champs ne correspond pas à l'instance PV, une nouvelle instance PV et une nouvelle instance de stockage physique sont alors provisionnées de manière dynamique.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mypvc spec: accessModes: - ReadWriteMany resources: requests: storage: "<size>" storageClassName: "" -
Créez votre PVC.
kubectl apply -f mypvc.yaml -
Vérifiez que votre PVC est créée et liée au volume persistant (PV).
kubectl describe pvc mypvcExemple de sortie
Name: mypvc Namespace: default StorageClass: "" Status: Bound Volume: pvc-0d787071-3a67-11e7-aafc-eef80dd2dea2 Labels: <none> Capacity: 20Gi Access Modes: RWX Events: FirstSeen LastSeen Count From SubObjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 3m 3m 1 {ibm.io/ibmc-file 31898035-3011-11e7-a6a4-7a08779efd33 } Normal Provisioning External provisioner is provisioning volume for claim "default/my-persistent-volume-claim" 3m 1m 10 {persistentvolume-controller } Normal ExternalProvisioning can't find provisioner "ibm.io/ibmc-file", expecting that a volume for the claim is provisioned either manually or via external software 1m 1m 1 {ibm.io/ibmc-file 31898035-3011-11e7-a6a4-7a08779efd33 } Normal ProvisioningSucceeded Successfully provisioned volume pvc-0d787071-3a67-11e7-aafc-eef80dd2dea2
Vous venez de créer un volume persistant que vous avez lié à une PVC. Les utilisateurs du cluster peuvent désormais monter la PVC sur leurs déploiements et commencer à effectuer des opérations de lecture et d'écriture sur l'objet PV.
Utilisation de File Storage for Classic dans un ensemble avec état
Si vous disposez d'une application avec état, telle qu'une base de données, vous pouvez créer des ensembles avec état utilisant File Storage for Classic pour stocker les données de votre application. Sinon, vous pouvez utiliser IBM Cloud DaaS (Database-as-a-Service) et stocker vos données dans le cloud.
- À quoi dois-je faire attention lorsque j'ajoute un « File Storage for Classic » à un « stateful set »?
- Pour ajouter du stockage dans un ensemble avec état, vous spécifiez la configuration de votre stockage dans la section
volumeClaimTemplatesdu fichier YAML de l'ensemble avec état. La sectionvolumeClaimTemplatesconstitue la base de votre PVC et peut inclure la classe de stockage et la taille ou le nombre d'IOPS de File Storage for Classic que vous souhaitez mettre à disposition. Cependant, si vous prévoyez d'ajouter des libellés (labels) dans la sectionvolumeClaimTemplates, Kubernetes n'inclut pas ces libellés en créant la PVC. Vous devez les ajouter directement dans l'ensemble avec état à la place.
Vous ne pouvez pas déployer deux ensembles avec état en même temps. Si vous essayez de créer un ensemble avec état avant le déploiement complet d'un autre ensemble, le déploiement de votre ensemble avec état peut entraîner des résultats imprévisibles.
- Comment puis-je créer mon « stateful set » dans une zone spécifique?**
- Dans un cluster multizone, vous pouvez spécifier la zone et la région dans lesquelles créer votre ensemble avec état dans les sections
spec.selector.matchLabelsetspec.template.metadata.labelsdu fichier YAML de votre ensemble avec état. Sinon, vous pouvez ajouter ces libellés dans une classe de stockage personnalisée et utiliser cette classe de stockage dans la sectionvolumeClaimTemplatesde votre ensemble avec état. - Puis-je retarder l'association d'un PV à mon pod avec état jusqu'à ce que ce dernier soit prêt?
- Oui, vous pouvez créer votre propre classe de stockage pour votre PVC qui inclut la zone
volumeBindingMode: WaitForFirstConsumer. - Quelles sont les options dont je dispose pour ajouter un « File Storage for Classic » à un «stateful set»?
- Si vous souhaitez créer automatiquement votre PVC lorsque vous créez l'ensemble avec état, utilisez la mise à disposition dynamique. Vous pouvez également opter pour une mise à disposition anticipée de vos PVC ou utiliser des PVC existantes avec votre ensemble avec état.
Création du PVC lorsque vous créez un ensemble avec état à l'aide de la mise à disposition dynamique
Utilisez cette option pour créer automatiquement la PVC lorsque vous créez l'ensemble avec état.
Avant de commencer : Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.
-
Vérifiez que tous les ensembles avec état existants de votre cluster sont entièrement déployés. Si un ensemble avec état est encore en cours de déploiement, vous ne pouvez pas commencer à créer votre ensemble avec état. Vous devez attendre jusqu'à ce que tous les ensembles avec état de votre cluster soient entièrement déployés pour éviter d'obtenir des résultats imprévisibles. Répertoriez les ensembles avec état existants dans votre cluster.
kubectl get statefulset --all-namespacesExemple de sortie
NAME DESIRED CURRENT AGE mystatefulset 3 3 6s -
Affichez le statut des pods de chaque ensemble avec état pour vérifier que le déploiement de tous les ensembles avec état est terminé.
kubectl describe statefulset <statefulset_name>Exemple de sortie
Name: nginx Namespace: default CreationTimestamp: Fri, 05 Oct 2022 13:22:41 -0400 Selector: app=nginx,billingType=hourly,region=us-south,zone=dal10 Labels: app=nginx billingType=hourly region=us-south zone=dal10 Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"apps/v1","kind":"StatefulSet","metadata":{"annotations":{},"name":"nginx","namespace":"default"},"spec":{"podManagementPolicy":"Par..." Replicas: 3 desired | 3 total Pods Status: 0 Running / 3 Waiting / 0 Succeeded / 0 Failed Pod Template: Labels: app=nginx billingType=hourly region=us-south zone=dal10Un ensemble avec état est entièrement déployé lorsque le nombre de répliques que vous trouvez dans la section Replicas de la sortie de l'interface de ligne de commande est égale au nombre de pods en cours d'exécution (Running) dans la section Pods Status. Si un ensemble avec état n'est pas tout à fait déployé, patientez jusqu'à ce que le déploiement soit terminé avant de poursuivre.
-
Créez un fichier de configuration pour votre ensemble avec état et le service que vous utilisez pour exposer cet ensemble.
Exemple d'ensemble avec état qui spécifie une zone. L'exemple suivant montre comment déployer NGINX sous forme d'ensemble avec état avec 3 répliques. Pour chaque réplique, une unité File Storage for Classic de 20 gigaoctets est mise à disposition en fonction des spécifications indiquées dans la classe de stockage
ibmc-file-retain-bronze. Toutes les unités de stockage sont mises à disposition dans la zonedal10. Comme File Storage for Classic n'est pas accessible à partir d'autres zones, toutes les répliques de l'ensemble avec état sont également déployées sur les nœuds worker situés dansdal10.apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata: name: nginx spec: serviceName: "nginx" replicas: 3 podManagementPolicy: Parallel selector: matchLabels: app: nginx billingType: "hourly" region: "us-south" zone: "dal10" template: metadata: labels: app: nginx billingType: "hourly" region: "us-south" zone: "dal10" spec: containers: - name: nginx image: registry.k8s.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: myvol mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: myvol spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi iops: "300" #required only for performance storage storageClassName: ibmc-file-retain-bronzeExemple d'ensemble avec état avec une règle d'anti-affinité et création d'instance File Storage for Classic différée. L'exemple suivant montre comment déployer NGINX sous forme d'ensemble avec état avec 3 répliques. L'ensemble avec état n'indique pas la région et la zone où est créé File Storage for Classic. A la place, l'ensemble avec état utilise une règle d'anti-affinité pour garantir que les pods sont répartis sur les noeuds worker et les zones. L'anti-affinité des noeuds worker est assurée en définissant le libellé
app: nginx. Ce libellé indique au planificateur de Kubernetes de ne pas planifier de pod sur un noeud worker si un pod ayant le même libellé s'exécute déjà sur ce noeud worker. Le libellétopologykey: failure-domain.beta.kubernetes.io/zonelimite davantage cette règle d'anti-affinité et empêche la planification du pod sur un noeud worker qui se trouve dans la même zone qu'un noeud worker qui exécute déjà un pod avec le libelléapp: nginx. Pour chaque pod d'ensemble avec état, deux PVC sont créées selon la définition indiquée à la sectionvolumeClaimTemplates, mais la création des instances File Storage for Classic est retardée jusqu'à ce qu'un pod d'ensemble avec état qui utilise le stockage soit planifié. Cette configuration est appelée « planification des volumes tenant compte de la topologie ».apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibmc-file-bronze-delayed parameters: billingType: hourly classVersion: "2" iopsPerGB: "2" sizeRange: '[20-12000]Gi' type: Endurance provisioner: ibm.io/ibmc-file reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer --- apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: serviceName: "nginx" replicas: 3 podManagementPolicy: "Parallel" selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - nginx topologyKey: failure-domain.beta.kubernetes.io/zone containers: - name: nginx image: registry.k8s.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: myvol1 mountPath: /usr/share/nginx/html - name: myvol2 mountPath: /tmp1 volumeClaimTemplates: - metadata: name: myvol1 spec: accessModes: - ReadWriteMany # access mode resources: requests: storage: 20Gi storageClassName: ibmc-file-bronze-delayed - metadata: name: myvol2 spec: accessModes: - ReadWriteMany # access mode resources: requests: storage: 20Gi storageClassName: ibmc-file-bronze-delayedname- Dans les métadonnées, entrez un nom pour votre ensemble avec état. Le nom entré est utilisé pour créer le nom de votre PVC au format :
<volume_name>-<statefulset_name>-<replica_number>. serviceName- Dans la section spec, entrez le nom du service que vous souhaitez utiliser pour exposer votre ensemble avec état.
replicas- Entrez le nombre de répliques de votre ensemble avec état.
podManagementPolicy- Entrez la règle de gestion de pod que vous souhaitez utiliser pour votre ensemble avec état. Sélectionnez l'une des options suivantes.
OrderedReady: avec cette option, les répliques de l'ensemble avec état sont déployées l'une après l'autre. Par exemple, si vous avez spécifié 3 répliques, Kubernetes crée la PVC pour la première réplique, attend jusqu'à ce que la PVC soit liée, déploie la réplique de l'ensemble avec état et monte la PVC sur la réplique. Une fois le déploiement terminé, la deuxième réplique est déployée. Pour plus d'informations sur cette option, consultez la section « Gestion des pods » sur OrderedReady.Parallel: avec cette option, le déploiement de toutes les répliques de l'ensemble avec état démarre en même temps. Si votre application prend en charge le déploiement parallèle des répliques, utilisez cette option afin de gagner du temps pour le déploiement de vos PVC et des répliques de l'ensemble avec état.
matchLabels- Dans la section spec.selector, entrez tous les libellés que vous souhaitez inclure dans votre ensemble avec état et votre PVC. Les libellés que vous indiquez dans la section
volumeClaimTemplatesde votre ensemble avec état ne sont pas reconnus par Kubernetes. Passez en revue les exemples de libellés suivants.regionetzone: si vous voulez que toutes les répliques de votre ensemble avec état et toutes vos PVC soient créées dans une zone spécifique, ajoutez les deux libellés. Vous pouvez également indiquer la zone et la région dans la classe de stockage que vous utilisez. Si vous ne spécifiez pas de zone et de région et que vous disposez d'un cluster à zones multiples, la zone dans laquelle votre espace de stockage est mis à disposition est sélectionnée sur une base de permutation circulaire pour équilibrer les demandes de volume également dans toutes les zones.billingType: entrez le type de facturation que vous désirez utiliser pour vos PVC. Choisissez entre une facturation à l'heure (hourly) ou au mois (monthly). Si vous ne spécifiez pas ce libellé, tous les PVC sont créés avec un type de facturation horaire.
labels- Dans la section de métadonnées du modèle de spécification, entrez les mêmes libellés que ceux que vous avez ajoutés dans la section
spec.selector.matchLabels. affinity- Dans la section spec.template.spec.affinity, spécifiez votre règle d'anti-affinité pour garantir que les pods de votre ensemble avec état sont répartis sur les noeuds worker et les zones. L'exemple montre une règle d'anti-affinité dans
laquelle le pod de l'ensemble avec état préfère ne pas être planifié sur un noeud worker où s'exécute un pod avec le libellé
app: nginx. La sectiontopologykey: failure-domain.beta.kubernetes.io/zonelimite davantage cette règle d'anti-affinité et empêche la planification du pod sur un noeud worker si ce noeud figure dans la même zone que le pod ayant le libelléapp: nginx. En utilisant cette règle d'anti-affinité, vous pouvez appliquer l'anti-affinité aux différents noeuds worker et aux différentes zones. name- Dans la section spec.volume.claim.templates.metadata, entrez un nom pour votre volume. Utilisez le même nom que vous avez défini dans la section
spec.containers.volumeMount.name. Le nom que vous entrez ici est utilisé pour créer le nom de votre PVC au format :<volume_name>-<statefulset_name>-<replica_number>. storage- Dans la section spec.volume.claim.templates.spec.resources.requests, entrez la taille pour File Storage for Classic en gigaoctets (Gi).
iops- Dans la section spec.volume.claim.templates.spec.resources.requests, si vous souhaitez mettre à disposition du stockage de type performance, entrez le nombre d'IOPS. Si vous utilisez une classe de stockage Endurance et que vous indiquez un nombre d'IOPS, le nombre d'IOPS est ignoré. Le nombre d'IOPS indiqué dans votre classe de stockage est utilisé à la place.
storageClassName- Dans la section spec.volume.claim.templates.spec, entrez la classe de stockage que vous souhaitez utiliser. Pour afficher la liste des classes de stockage existantes, exécutez la commande «
kubectl get sc | grep file». Si vous ne spécifiez pas de classe de stockage, le PVC est créé avec la classe de stockage par défaut définie dans votre cluster. Vérifiez que la classe de stockage par défaut comporteibm.io/ibmc-filedans la section 'provisioner' de sorte que votre ensemble avec état soit mis à disposition avec File Storage for Classic.
-
Créez votre ensemble avec état.
kubectl apply -f statefulset.yaml -
Patientez jusqu'à ce que votre ensemble avec état soit déployé.
kubectl describe statefulset <statefulset_name>
Pour voir le statut actuel de vos PVC, exécutez la commande kubectl get pvc. Le nom de votre PVC est formaté en tant que <volume_name>-<statefulset_name>-<replica_number>.
Mise à disposition statique : Utilisation d'une PVC existante avec votre ensemble avec état
Vous pouvez mettre à disposition vos PVC de manière anticipée avant de créer votre ensemble avec état ou utiliser des PVC existantes avec votre ensemble avec état.
Lorsque vous effectuez une mise à disposition dynamique de vos PVC lors de la création de l'ensemble avec état, le nom de la PVC est affecté en fonction des valeurs que vous avez utilisées dans le fichier YAML de l'ensemble avec état. Pour que l'ensemble avec état utilise des PVC existantes, le nom de vos PVC doit correspondre à celui qui serait automatiquement créé via une mise à disposition dynamique.
Avant de commencer : Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.
- Si vous souhaitez effectuer une mise à disposition préalable de votre PVC avant de créer l'ensemble avec état, suivez les étapes 1 à 3 de la section Ajout de File Storage for Classic à des applications pour créer
une PVC pour chaque réplique de l'ensemble avec état. Assurez-vous de créer votre PVC avec un nom qui suit le format suivant :
<volume_name>-<statefulset_name>-<replica_number>.
<volume_name>-
Utilisez le nom que vous souhaitez spécifier dans la section
spec.volumeClaimTemplates.metadata.namede votre ensemble avec état, par exemplenginxvol. <statefulset_name>-
Utilisez le nom que vous souhaitez spécifier dans la section
metadata.namede votre ensemble avec état, par exemplenginx_statefulset. <replica_number>-
Entrez le numéro de votre réplique en commençant à partir de 0.
Par exemple, si vous devez créer 3 répliques de l'ensemble avec état, créez 3 PVC avec les noms suivants :
nginxvol-nginx_statefulset-0,nginxvol-nginx_statefulset-1etnginxvol-nginx_statefulset-2.Vous envisagez de créer une PVC et un volume persistant pour une instance File Storage for Classic existante ? Créez votre PVC et le volume persistant en utilisant une mise à disposition statique.
- Suivez les étapes indiquées à la section Mise à disposition dynamique : Création de la PVC lorsque vous créez un ensemble avec état pour créer votre ensemble avec état. Le nom de votre PVC suit le
format
<volume_name>-<statefulset_name>-<replica_number>. Veillez à utiliser les valeurs suivantes pour le nom de votre PVC dans la spécification de l'ensemble avec état.
spec.volumeClaimTemplates.metadata.name-
Entrez le
<volume_name>de votre nom de PVC. metadata.name-
Entrez le
<statefulset_name>de votre nom de PVC. spec.replicas-
Entrez le nombre de répliques que vous souhaitez créer pour votre ensemble avec état. Le nombre de répliques doit être égal au nombre de PVC que vous avez créées précédemment.
Si vos PVC se trouvent dans des zones différentes, n'incluez pas d'étiquette de région ou de zone dans votre ensemble avec état.
-
Vérifiez que les PVC sont utilisées dans les pods de réplique de votre ensemble avec état en répertoriant les pods de votre cluster et en identifiant ceux qui appartiennent à votre ensemble avec état.
kubectl get pods -
Vérifiez que votre PVC existante est montée sur la réplique de votre ensemble avec état. Examinez la valeur de
ClaimNamedans la sectionVolumesde la sortie de l'interface de ligne de commande.kubectl describe pod <pod_name>Exemple de sortie
Name: nginx-0 Namespace: default Node: 10.xxx.xx.xxx/10.xxx.xx.xxx Start Time: Fri, 05 Oct 2022 13:24:59 -0400 ... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: myvol-nginx-0 ...
Modification de la taille et du nombre d'opérations d'entrée-sortie par seconde (IOPS) de votre unité de stockage
Si vous envisagez d'augmenter la capacité de stockage ou les performances, vous pouvez modifier votre volume existant.
Pour toute question concernant la facturation ou la procédure à suivre pour modifier votre stockage en utilisant la console IBM Cloud, voir Extension de la capacité de partage de fichiers.
-
Répertoriez les réservations de volume persistant (PVC) et notez le nom du volume persistant (PV) associé indiqué dans la colonne VOLUME.
kubectl get pvcExemple de sortie
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE myvol Bound pvc-01ac123a-123b-12c3-abcd-0a1234cb12d3 20Gi RWX ibmc-file-bronze 147d -
Extrayez le type de stockage (
StorageType), l'ID volume (volumeId) et le serveur (server) de l'unité File Storage for Classic physique associée à votre PVC en affichant les détails du volume persistant auquel est liée votre PVC. Remplacez<pv_name>par le nom du PV que vous avez extrait à l'étape précédente. Le type de stockage, l'ID du volume et le nom du serveur sont affichés dans la sectionLabelsde la sortie de l'interface de ligne de commande.kubectl describe pv <pv_name>Exemple de sortie
Name: pvc-4b62c704-5f77-11e8-8a75-b229c11ba64a Labels: CapacityGb=20 Datacenter=dal10 Iops=2 StorageType=ENDURANCE Username=IBM02SEV1543159_6 billingType=hourly failure-domain.beta.kubernetes.io/region=us-south failure-domain.beta.kubernetes.io/zone=dal10 path=IBM01SEV1234567_8ab12t server=fsf-dal1001g-fz.adn.networklayer.com volumeId=12345678 ... -
Modifiez la taille ou le nombre d'IOPS de votre volume dans votre compte d'infrastructure IBM Cloud.
Exemple relatif au stockage de performance.
ibmcloud sl file volume-modify <volume_ID> --new-size <size> --new-iops <iops>Exemple relatif au stockage d'endurance.
ibmcloud sl file volume-modify <volume_ID> --new-size <size> --new-tier <iops>volume_ID- Entrez l'ID du volume que vous avez récupéré précédemment.
new-size- Entrez la nouvelle taille en gigaoctets (Gi) de votre volume. Pour obtenir les tailles valides, voir Détermination de la configuration de File Storage for Classic. La taille que vous entrez doit être supérieure ou égale à la taille actuelle de votre volume. Si vous ne spécifiez pas de nouvelle taille, la taille en couirs du volume est utilisée.
new-iops- Pour du stockage Performance uniquement. Entrez le nouveau nombre d'IOPS de votre choix. Pour obtenir les nombres d'IOPS valides, voir Détermination de la configuration de File Storage for Classic. Si vous ne spécifiez pas l'IOPS, l'IOPS en cours est utilisé. Si le rapport IOPS/Go d'origine du volume est inférieur à 0,3, le nouveau rapport IOPS/Go doit être inférieur à ratio 0,3. Si le rapport IOPS/Go d'origine du volume est supérieur ou égal à 0,3, le nouveau rapport IOPS/Go du volume doit être supérieur ou égal à 0,3.
new-tier- Pour du stockage Endurance uniquement. Entrez le nouveau nombre d'IOPS par Go de votre choix. Pour obtenir les nombres d'IOPS valides, voir Détermination de la configuration de File Storage for Classic. Si vous ne spécifiez pas l'IOPS, l'IOPS en cours est utilisé. Si le rapport IOPS/Go d'origine du volume est inférieur à 0,25, le nouveau rapport IOPS/Go doit être inférieur à 0,25. Si le rapport IOPS/Go d'origine du volume est supérieur ou égal à 0,25, le nouveau rapport IOPS/Go du volume doit être supérieur ou égal à 0,25.
Exemple de sortie
Order 31020713 was placed successfully!. > Storage as a Service > 40 GBs > 2 IOPS per GB > 20 GB Storage Space (Snapshot Space) You might run 'ibmcloud sl file volume-list --order 12345667' to find this file volume after it is ready. -
Si vous avez modifié la taille de votre volume et que vous utilisez le volume dans un pod, connectez-vous à votre pod pour vérifier la nouvelle taille. Répertoriez tous les pod utilisant une PVC. Les ID sont renvoyés au format
<pod_name>: <pvc_name>.kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>" -
Connectez-vous à votre pod.
kubectl exec -it <pod_name> bash -
Affichez les statistiques d'utilisation du disque et recherchez le chemin d'accès au serveur que vous avez récupéré précédemment.
df -hExemple de sortie
Filesystem Size Used Avail Use% Mounted on overlay 99G 4.8G 89G 6% / tmpfs 64M 0 64M 0% /dev tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup fsf-dal1001g-fz.adn.networklayer.com:/IBM01SEV1234567_6/data01 40G 0 40G 0% /myvol
Bien que la taille et le nombre d'IOPS de votre stockage physique aient changé, ces valeurs ne sont pas répercutées dans votre PV ou votre PVC. Si vous décrivez votre PV ou votre PVC, les anciennes valeurs de taille et d'IOPS continueront de
s'afficher. Vous avez la possibilité de mettre à jour manuellement la taille et le nombre d'IOPS dans votre PV à l'aide de la commande kubectl patch pv. Toutefois, cette commande ne peut pas être utilisée pour modifier la taille
ou l'IOPS dans le PVC. Pour éviter d'avoir des valeurs de taille et d'IOPS différentes dans votre PVC et votre PV, laissez votre PVC et votre PV en l'état.
Modification de la version NFS par défaut
La version de File Storage for Classic détermine le protocole utilisé pour communiquer avec le serveur IBM Cloud File Storage for Classic. Par défaut, toutes les instances File Storage for Classic sont définies avec NFS version 4. Vous pouvez remplacer votre PV existant par une version NFS plus ancienne si votre application nécessite une version spécifique pour fonctionner correctement.
Pour modifier la version NFS par défaut, vous pouvez créer une nouvelle classe de stockage afin de mettre à disposition File Storage for Classic de manière dynamique dans votre cluster, ou choisir de modifier un volume persistant existant monté sur votre pod.
Pour appliquer les dernières mises à jour de sécurité et améliorer les performances, utilisez la version NFS par défaut et ne passez pas à une version NFS plus ancienne.
Création d'une classe de stockage personnalisée avec une version spécifique d' NFS
-
Créez une classe de stockage personnalisée avec la version NFS que vous voulez mettre à disposition.
-
Créez la classe de stockage dans votre cluster.
kubectl apply -f nfsversion_storageclass.yaml -
Vérifiez que la classe de stockage personnalisée a été créée.
kubectl get sc -
Mettez à disposition File Storage for Classic avec votre classe de stockage personnalisée.
Modification de votre PV existant pour utiliser une autre version d' NFS
-
Récupérez le volume persistant (PV) de l'instance File Storage for Classic dont vous voulez modifier la version NFS et notez le nom de ce volume.
kubectl get pv -
Ajoutez une annotation à votre volume persistant. Remplacez
<version_number>par la version NFS que vous souhaitez utiliser. Par exemple, pour passer à NFS version 3.0, entrez 3.kubectl patch pv <pv_name> -p '{"metadata": {"annotations":{"volume.beta.kubernetes.io/mount-options":"vers=<version_number>"}}}' -
Supprimez le pod qui utilise File Storage for Classic et recréez le pod.
- Sauvegardez le fichier YAML du pod sur votre machine locale.
kubect get pod <pod_name> -o yaml > <filepath/pod.yaml> ``` 2. Supprimez le pod. ```sh {: pre} kubectl deleted pod <pod_name> ``` 3. Recréez le pod. ```sh {: pre} kubectl apply -f pod.yaml ``` -
Patientez jusqu'à la fin du déploiement du pod. Le pod est complètement déployé lorsque le statut passe à
Running.kubectl get pods -
Connectez-vous à votre pod.
kubectl exec -it <pod_name> sh -
Vérifiez que l'instance File Storage for Classic a été montée avec la version NFS que vous avez spécifiée auparavant.
mount | grep "nfs" | awk -F" |," '{ print $5, $8 }'Exemple de sortie
nfs vers=3.0
Mise à l'échelle par réduction du plug-in File Storage for Classic par défaut
Par défaut, vos clusters classiques intègrent le plug-in « File Storage for Classic ». Si vous n'avez pas besoin d'utiliser File Storage for Classic dans votre cluster, vous pouvez conserver les ressources de cluster en réduisant les composants du plug-in et de l'observateur. Par la suite, vous pouvez mettre à l'échelle par augmentation une réplique si vous avez besoin de File Storage for Classic. Vous ne pouvez pas modifier d'autres paramètres ou supprimer entièrement le déploiement. Etant donné que le plug-in est toujours installé, il est mis à jour avec les mises à jour de version de cluster même si vous l'avez mis à l'échelle par réduction.
Avant de commencer :
- Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.
- Vérifiez que vous disposez du rôle d'accès au service IAM Responsable pour le cluster afin de pouvoir apporter des modifications aux déploiements dans l'espace de noms
kube-system.
Pour mettre à l'échelle par réduction le plug-in File Storage for Classic :
-
Diminuez la capacité du plug-in File Storage for Classic et les déploiements watcher à
0réplique.kubectl scale deployment -n kube-system --replicas=0 ibm-file-pluginkubectl scale deployment -n kube-system --replicas=0 ibm-storage-watcherSi vous avez besoin de File Storage for Classic ultérieurement, vous pouvez mettre le plug-in à l'échelle par augmentation à l'aide des commandes ci-après.
kubectl scale deployment -n kube-system --replicas=1 ibm-file-plugin && kubectl scale deployment -n kube-system --replicas=1 ibm-storage-watcher -
Facultatif : vérifiez que le plug-in a été mis à l'échelle par réduction. La mise à l'échelle par réduction aboutit lorsque les pods sont supprimés et restent supprimées, même après la modification de l'état principal, par exemple par une actualisation ou une mise à jour de cluster.
- Vérifiez que les pods ont été retirés.
kubectl get pods -n kube-system -l 'app in (ibm-file-plugin, ibm-storage-watcher)' ``` Exemple de sortie ```sh {: screen} No resources found. ``` 2. Actualisez le maître cluster. ```sh {: pre} ibmcloud ks cluster refresh -c <cluster_name_or_ID> ``` 3. Patientez quelques minutes jusqu’à ce que l’actualisation soit terminée, puis répétez la sous-étape `2.a` pour vérifier que les pods ont bien été supprimés. Si les pods sont replanifiés, les modifications que vous avez apportées au fichier de configuration du plug-in File Storage for Classic n'ont pas été correctement sauvegardées. Assurez-vous que votre cluster exécute la version Kubernetes appropriée, puis faites une nouvelle tentative.
Sauvegarde et restauration de données
File Storage for Classic est mis à disposition au même emplacement que les noeuds worker dans votre cluster. Le stockage est hébergé par IBM sur des serveurs en cluster pour qu'il soit disponible si un serveur tombe en panne. Cependant, File Storage for Classic n'est pas sauvegardé automatiquement et risque d'être inaccessible en cas de défaillance de l'emplacement global. Pour éviter que vos données soient perdues ou endommagées, vous pouvez configurer des sauvegardes régulières que vous pourrez utiliser pour récupérer vos données si nécessaire.
Passez en revue les options de sauvegarde et restauration suivantes pour votre instance File Storage for Classic.
Configuration de la prise régulière d'instantanés
Vous pouvez configurer la prise d'instantanés régulière de votre instance File Storage for Classic. Un instantané est une image en lecture seule qui capture l'état de l'instance à un moment donné. Pour stocker l'instantané, vous devez demander de l'espace d'image instantanée dans votre instance File Storage for Classic. Les instantanés sont stockés dans l'instance de stockage existante figurant dans la même zone. Vous pouvez restaurer des données à partir d'un instantané si l'utilisateur supprime accidentellement des données importantes du volume.
Pour créer un instantané pour votre volume, procédez comme suit.
-
Connectez-vous à l'interface de ligne de commande
ibmcloud sl.ibmcloud sl init -
Répertoriez les volumes persistants existants dans votre cluster.
kubectl get pv -
Obtenez les détails du volume persistant pour lequel vous voulez créer un espace d'instantané et notez l'ID du volume, la taille et le nombre d'entrées-sorties par seconde (IOPS). L'ID du volume, la taille et le nombre d'IOPS se trouvent dans la section Labels de la sortie de l'interface de ligne de commande.
kubectl describe pv <pv_name> -
Créez la taille de l'instantané pour le volume existant à l'aide des paramètres que vous avez récupérés à l'étape précédente.
ibmcloud sl file snapshot-order <volume_ID> --size <size> --tier <iops> -
Attendez que la taille de l'instantané soit créée. La taille de l'instantané est mise à disposition avec succès lorsque ** Taille de l'instantané (Go)** dans votre sortie CLI passe de 0 à la taille que vous avez commandée.
ibmcloud sl file volume-detail <volume_ID> -
Créez l'instantané de votre volume et notez l'ID de l'instantané qui a été créé pour vous.
ibmcloud sl file snapshot-create <volume_ID> -
Vérifiez que la création de l'instantané a abouti.
ibmcloud sl file snapshot-list <volume_ID> -
Définissez la planification de l'image instantanée. Pour plus d'informations sur les options disponibles pour votre planification d'instantané, voir la documentation de l'interface de ligne de commande.
ibmcloud sl block snapshot-enable VOLUME_ID <OPTIONS> -
Pour restaurer les données d'un instantané sur un volume existant, exécutez la commande suivante :
ibmcloud sl file snapshot-restore <volume_ID> <snapshot_ID>
Réplication d'instantanés dans une autre zone
Pour protéger vos données en cas de défaillance d'une zone, vous pouvez répliquer des instantanés sur une instance File Storage for Classic configurée dans une autre zone.
Les données peuvent être répliquées du stockage principal uniquement vers le stockage de sauvegarde. Vous ne pouvez pas monter une instance File Storage for Classic répliquée sur un cluster. En cas de défaillance de votre stockage principal, vous pouvez manuellement définir votre stockage de sauvegarde répliqué comme stockage principal. Vous pouvez ensuite le monter sur votre cluster. Une fois votre stockage principal restauré, vous pouvez récupérer les données dans le stockage de sauvegarde.
Duplication du stockage
Vous pouvez dupliquer votre instance File Storage for Classic dans la même zone que l'instance de stockage d'origine.
Un doublon contient les mêmes données que l'instance de stockage d'origine au moment où vous créez le doublon. Contrairement aux répliques, le doublon s'utilise comme une instance de stockage indépendante de l'original. Pour effectuer la duplication, commencez par configurer des instantanés pour le volume.
Sauvegarde des données dans IBM Cloud® Object Storage
Vous pouvez utiliser le graphique ibm-backup-restore Helm pour démarrer une sauvegarde et restaurer un pod dans votre cluster.
Ce pod contient un script pour exécuter une sauvegarde unique ou régulière d'une réservation de volume persistant (PVC) dans votre cluster. Les données sont stockées dans votre instance IBM Cloud® Object Storage que vous avez configurée dans une zone.
Pour rendre vos données hautement disponibles et protéger votre application en cas de défaillance d'une zone, configurez une deuxième instance IBM Cloud® Object Storage et répliquez les données entre les différentes zones. Si vous devez restaurer des données à partir de votre instance IBM Cloud® Object Storage, utilisez le script de restauration fourni avec la charte Helm.
Copie de données vers et depuis des pods et des conteneurs
Vous pouvez utiliser la commande kubectl cp pour copier des fichiers et des répertoires vers
et depuis des pods ou des conteneurs spécifiques de votre cluster.
Avant de commencer : Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster. Si vous ne spécifiez pas
de conteneur avec -c, la commande utilise le premier conteneur disponible dans le pod.
Copiez les données de votre machine locale vers un pod de votre cluster.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath>
Copiez les données d'un pod de votre cluster vers votre machine locale.
kubectl cp <namespace>/<pod>:<pod_filepath>/<filename></var> <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.
kubectl cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath> -c CONTAINER
Référence des classes de stockage
| Caractéristiques | Paramètre |
|---|---|
| Nom | ibmc-file-bronzeibmc-file-retain-bronzeibmc-file-bronze-gid |
| Type | Stockage d'endurance |
| Système de fichiers | NFS |
| IOPS par gigaoctet | 2 |
| Plage de tailles en gigaoctets | 20 - 12000 Gi |
| Disque dur | SSD |
| Stratégie de récupération | ibmc-file-bronze : Supprimeribmc-file-retain-bronze : Récupéreribmc-file-bronze-gid: Supprimer |
| ID de groupe supplémentaire | L'ID de groupe supplémentaire 65531 est automatiquement défini lorsque vous utilisez la classe de stockage ibmc-file-bronze-gid pour permettre aux utilisateurs non root d'accéder à votre instance de stockage de fichiers. Pour
plus d'informations sur l'utilisation de cette classe de stockage ou sur la définition d'ID de groupe personnalisés, voir Stockage de fichiers : échec de l'ajout de l'accès d'utilisateur non root au stockage persistant. |
| Facturation | Horaire |
| Tarification | Informations de tarification |
| Caractéristiques | Paramètre |
|---|---|
| Nom | ibmc-file-silveribmc-file-retain-silveribmc-file-silver-gid |
| Type | Stockage d'endurance |
| Système de fichiers | NFS |
| IOPS par gigaoctet | 4 |
| Plage de tailles en gigaoctets | 20 - 12000 Gi |
| Disque dur | SSD |
| Stratégie de récupération | ibmc-file-silver : Supprimeribmc-file-retain-silver : Récupéreribmc-file-silver-gid: Supprimer |
| ID de groupe supplémentaire | L'ID de groupe supplémentaire 65531 est automatiquement défini lorsque vous utilisez la classe de stockage ibmc-file-bronze-gid pour permettre aux utilisateurs non root d'accéder à votre instance de stockage de fichiers. Pour
plus d'informations sur l'utilisation de cette classe de stockage ou sur la définition d'ID de groupe personnalisés, voir Stockage de fichiers : échec de l'ajout de l'accès d'utilisateur non root au stockage persistant. |
| Facturation | Horaire |
| Tarification | Informations de tarification |
| Caractéristiques | Paramètre |
|---|---|
| Nom | ibmc-file-goldibmc-file-retain-goldibmc-file-gold-gid |
| Type | Stockage d'endurance |
| Système de fichiers | NFS |
| IOPS par gigaoctet | 10 |
| Plage de tailles en gigaoctets | 20 - 4000 Gi |
| Disque dur | SSD |
| Stratégie de récupération | ibmc-file-gold : Supprimeribmc-file-retain-gold : Récupéreribmc-file-gold-gid: Supprimer |
| ID de groupe supplémentaire | L'ID de groupe supplémentaire 65531 est automatiquement défini lorsque vous utilisez la classe de stockage ibmc-file-bronze-gid pour permettre aux utilisateurs non root d'accéder à votre instance de stockage de fichiers. Pour
plus d'informations sur l'utilisation de cette classe de stockage ou sur la définition d'ID de groupe personnalisés, voir Stockage de fichiers : échec de l'ajout de l'accès d'utilisateur non root au stockage persistant. |
| Facturation | Horaire |
| Tarification | Informations de tarification |
| Caractéristiques | Paramètre |
|---|---|
| Nom | ibmc-file-customibmc-file-retain-custom |
| Type | Performances |
| Système de fichiers | NFS |
| IOPS et taille |
|
| Disque dur | Rapport IOPS/gigaoctet qui détermine le type de disque dur mis à disposition. Pour déterminer ce rapport, divisez la valeur des IOPS par la taille de votre stockage. Exemple : Vous avez choisi 500Gi de stockage avec 100 IOPS. Votre rapport est 0,2 (100 IOPS/500Gi). Présentation des types de disque dur par rapport : -Inférieur ou égal à 0,3 : SATA -Supérieur à 0.3 : SSD |
| Stratégie de récupération | ibmc-file-custom : Supprimeribmc-file-retain-custom : Conserver |
| Facturation | Horaire |
| Tarification | Informations de tarification |
Exemples de classes de stockage personnalisées
Vous pouvez créer une classe de stockage personnalisée et l'utiliser dans votre PVC.
IBM Cloud Kubernetes Service fournit des classes de stockage prédéfinies pour mettre à disposition File Storage for Classic avec une configuration et un niveau particuliers. Parfois, vous pouvez souhaiter stocker une mémoire avec une configuration différente qui n'est pas couverte dans les classes de stockage prédéfinies. Vous pouvez utiliser les exemples de cette rubrique pour trouver des modèles de classes de stockage personnalisées.
Pour créer votre classe de stockage personnalisée, voir Personnalisation d'une classe de stockage. Utilisez ensuite votre classe de stockage personnalisée dans votre PVC.
Création de stockage tenant compte de la topologie
Pour utiliser File Storage for Classic dans un cluster multizone, vous devez planifier votre pod dans la même zone que votre instance File Storage for Classic pour que vous puissiez effectuer des opérations de lecture et d'écriture dans le volume. Avant l'introduction de ce type de planification par Kubernetes, la mise à disposition dynamique de votre stockage créait automatiquement l'instance File Storage for Classic dès qu'une PVC était créée. Ensuite, lorsque vous créiez votre pod, le planificateur de Kubernetes essayait de déployer le pod sur un noeud worker dans le même centre de données que votre instance File Storage for Classic.
La création de l'instance File Storage for Classic sans connaître les contraintes liées au pod peut entraîner des résultats indésirables. Par exemple, il peut arriver que votre pod ne puisse pas être planifié sur le même noeud worker que votre stockage car ce noeud ne dispose pas de ressources suffisantes ou une tache lui est appliquée et il n'autorise pas la planification du pod. Avec une planification de volume tenant compte de la topologie, la création de l'instance File Storage for Classic est différée jusqu'à ce que le premier pod utilisant le stockage soit créé.
Les exemples suivants montrent comment créer des classes de stockage qui retardent la création de l'instance File Storage for Classic jusqu'à ce que le premier pod utilisant ce stockage soit prêt à être planifié. Pour différer la création,
vous devez inclure l'option volumeBindingMode: WaitForFirstConsumer. Si vous n'incluez pas cette option, volumeBindingMode est automatiquement défini sur Immediate et l'instance File Storage for Classic
est créée lorsque vous créez le PVC.
Exemple pour File Storage for Classic Endurance.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ibmc-file-bronze-delayed
parameters:
billingType: hourly
classVersion: "2"
iopsPerGB: "2"
sizeRange: '[20-12000]Gi'
type: Endurance
provisioner: ibm.io/ibmc-file
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
Exemple pour File Storage for Classic Performance.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ibmc-file-performance-storageclass
labels:
kubernetes.io/cluster-service: "true"
provisioner: ibm.io/ibmc-file
parameters:
billingType: "hourly"
classVersion: "2"
sizeIOPSRange: |-
"[20-39]Gi:[100-1000]"
"[40-79]Gi:[100-2000]"
"[80-99]Gi:[100-4000]"
"[100-499]Gi:[100-6000]"
"[500-999]Gi:[100-10000]"
"[1000-1999]Gi:[100-20000]"
"[2000-2999]Gi:[200-40000]"
"[3000-3999]Gi:[200-48000]"
"[4000-7999]Gi:[300-48000]"
"[8000-9999]Gi:[500-48000]"
"[10000-12000]Gi:[1000-48000]"
type: "Performance"
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
Spécification de zone pour les clusters multizones
Si vous souhaitez créer votre instance File Storage for Classic dans une zone précise, vous pouvez spécifier la zone et la région dans une classe de stockage personnalisée.
Utilisez la classe de stockage personnalisée si vous souhaitez effectuer une mise à disposition statique de File Storage for Classic dans une zone spécifique. Dans tous les autres cas, indiquez la zone directement dans votre PVC.
Lorsque vous créez la classe de stockage personnalisée, indiquez la même région et la même zone dans lesquelles se trouvent votre cluster et les noeuds worker. Pour obtenir la région de votre cluster, exécutez ibmcloud ks cluster get --cluster <cluster_name_or_ID> et recherchez le préfixe de région dans URL principale, tel que eu-de dans https://c2.eu-de.containers.cloud.ibm.com:11111. Pour obtenir la zone de votre noeud worker, exécutez ibmcloud ks worker ls --cluster <cluster_name_or_ID>.
Exemple pour File Storage for Classic Endurance.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ibmc-file-silver-mycustom-storageclass
labels:
kubernetes.io/cluster-service: "true"
provisioner: ibm.io/ibmc-file
parameters:
zone: "dal12"
region: "us-south"
type: "Endurance"
iopsPerGB: "4"
sizeRange: "[20-12000]Gi"
reclaimPolicy: "Delete"
classVersion: "2"
reclaimPolicy: Delete
volumeBindingMode: Immediate
Exemple pour File Storage for Classic Performance.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ibmc-file-performance-storageclass
labels:
kubernetes.io/cluster-service: "true"
provisioner: ibm.io/ibmc-file
parameters:
zone: "dal12"
region: "us-south"
billingType: "hourly"
classVersion: "2"
sizeIOPSRange: |-
"[20-39]Gi:[100-1000]"
"[40-79]Gi:[100-2000]"
"[80-99]Gi:[100-4000]"
"[100-499]Gi:[100-6000]"
"[500-999]Gi:[100-10000]"
"[1000-1999]Gi:[100-20000]"
"[2000-2999]Gi:[200-40000]"
"[3000-3999]Gi:[200-48000]"
"[4000-7999]Gi:[300-48000]"
"[8000-9999]Gi:[500-48000]"
"[10000-12000]Gi:[1000-48000]"
type: "Performance"
reclaimPolicy: Delete
volumeBindingMode: Immediate
Modification de la version NFS par défaut
La classe de stockage personnalisée suivante vous permet de définir la version NFS que vous désirez mettre à disposition. Par exemple, pour fournir NFS version 3.0, remplacez <nfs_version> par 3.0.
Exemple pour File Storage for Classic Endurance.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ibmc-file-mount
labels:
kubernetes.io/cluster-service: "true"
provisioner: ibm.io/ibmc-file
parameters:
type: "Endurance"
iopsPerGB: "2"
sizeRange: "[1-12000]Gi"
reclaimPolicy: "Delete"
classVersion: "2"
mountOptions: nfsvers=<nfs_version>
Exemple pour File Storage for Classic Performance.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ibmc-file-mount
labels:
kubernetes.io/cluster-service: "true"
provisioner: ibm.io/ibmc-file
parameters:
type: "Performance"
classVersion: "2"
sizeIOPSRange: |-
"[20-39]Gi:[100-1000]"
"[40-79]Gi:[100-2000]"
"[80-99]Gi:[100-4000]"
"[100-499]Gi:[100-6000]"
"[500-999]Gi:[100-10000]"
"[1000-1999]Gi:[100-20000]"
"[2000-2999]Gi:[200-40000]"
"[3000-3999]Gi:[200-48000]"
"[4000-7999]Gi:[300-48000]"
"[8000-9999]Gi:[500-48000]"
"[10000-12000]Gi:[1000-48000]"
mountOptions: nfsvers=<nfs_version>
Retrait de stockage persistant d'un cluster
Lorsque vous configurez du stockage persistant dans votre cluster, vous disposez de trois composants principaux : la réservation de volume persistant (PVC) Kubernetes qui sollicite le stockage, le volume persistant (PV) Kubernetes qui est monté sur un pod et décrit dans la PVC, et l'instance d'infrastructure IBM Cloud, comme par exemple du stockage de fichiers ou du stockage par blocs classiques. Selon la façon dont vous avez créé votre stockage, il vous faudra peut-être supprimer les trois composants séparément.
Description de vos options de retrait de stockage
La procédure de retrait du stockage persistant de votre compte IBM Cloud varie en fonction de la façon dont vous avez mis à disposition le stockage et des composants que vous avez déjà retirés.
- Mon stockage persistant est-il supprimé lorsque je supprime mon cluster?
- Lors de la suppression du cluster, vous avez la possibilité de retirer votre stockage persistant. Toutefois, selon la façon dont votre stockage a été mis à disposition, la procédure de retrait de votre stockage peut ne pas inclure tous les
composants de stockage. Si vous avez provisionné dynamiquement du stockage avec une classe de stockage définissant l'option «
reclaimPolicy: Delete», votre PVC, votre PV et l'instance de stockage sont automatiquement supprimés lorsque vous supprimez le cluster. Pour le stockage provisionné de manière statique ou celui que vous avez provisionné avec une classe de stockage définissant l'option «reclaimPolicy: Retain», le PVC et le PV sont supprimés lorsque vous supprimez le cluster, mais votre instance de stockage et vos données sont conservées. L'utilisation de votre instance de stockage vous est toujours facturée. Par ailleurs, si vous avez supprimé votre cluster alors qu'il n'était pas à l'état sain, le stockage peut encore exister, même si vous choisissez de le supprimer. - Comment puis-je supprimer l'espace de stockage tout en conservant mon cluster?
- Lorsque vous avez mis à disposition le stockage de façon dynamique avec une classe de stockage indiquant
reclaimPolicy: Delete, vous pouvez retirer la réservation de volume persistant (PVC) pour lancer le processus de suppression de votre stockage persistant. Votre réservation de volume persistant (PVC), votre volume persistant (PV) et votre instance de stockage sont automatiquement retirés. Pour le stockage provisionné de manière statique ou celui que vous avez provisionné avec une classe de stockage définissant l'option «reclaimPolicy: Retain», vous devez supprimer manuellement le PVC, le PV et l'instance de stockage afin d'éviter toute facturation supplémentaire. - Comment la facturation prend-elle fin après la suppression de mon espace de stockage?
- Selon les composants de stockage que vous supprimez et le moment auquel vous les supprimez, il se peut que le cycle de facturation ne s'arrête pas immédiatement. Si vous supprimez la réservation de volume persistant et le volume persistant, mais pas l'instance dans votre compte IBM Cloud, cette instance continue à exister et vous êtes facturé pour son utilisation.
Si vous supprimez la PVC, le PV et l'instance de stockage, le cycle de facturation s'arrête en fonction du type de facturation (billingType) que vous avez choisi lors de la mise à disposition de votre stockage et de la façon dont
vous avez choisi de supprimer le stockage.
-
Lorsque vous supprimez manuellement l'instance de stockage persistant depuis la console IBM Cloud ou via l'interface de ligne de commande (CLI), la facturation prend fin comme suit :
- Stockage horaire : la facturation cesse immédiatement. Une fois votre stockage annulé, il se peut que votre instance de stockage soit toujours visible dans la console pendant une durée maximale de 72 heures.
- Stockage mensuel : vous pouvez choisir l'option Annulation immédiate ou Annulation à la date anniversaire. Dans les deux cas, la facturation se poursuit jusqu'à la fin du cycle de facturation en cours et cesse pour le cycle de facturation suivant. Une fois votre stockage annulé, il se peut que votre instance de stockage soit toujours visible dans la console ou l'interface de ligne de commande pendant une durée maximale de 72 heures.
- Annulation immédiate : choisissez cette option pour retirer immédiatement votre stockage. Ni vous ni vos utilisateurs ne pouvez plus utiliser le stockage ou récupérer les données.
- Annulation à la date anniversaire : choisissez cette option pour annuler votre stockage à la date anniversaire suivante. Vos instances de stockage restent actives jusqu'à la date anniversaire suivante et vous pouvez continuer de les utiliser jusqu'à cette date, par exemple, afin de permettre à votre équipe de créer des copies de sauvegarde de vos données.
-
Lorsque vous avez mis à disposition le stockage de façon dynamique avec une classe de stockage indiquant
reclaimPolicy: Deleteque vous choisissez de retirer la réservation de volume persistant (PVC), le volume persistant (PV) et l'instance de stockage sont immédiatement retirés. Pour le stockage facturé à l'heure, la facturation s'arrête immédiatement. Pour le stockage facturé au mois, vous êtes facturé jusqu'à la fin du mois en cours. Une fois votre stockage retiré et la facturation arrêtée, il se peut que votre instance de stockage soit toujours visible dans la console ou l'interface de ligne de commande pendant une durée maximale de 72 heures.
- Que dois-je savoir avant de supprimer un espace de stockage persistant?
- Lorsque vous nettoyez du stockage persistant, vous supprimez toutes les données qui y sont stockées. Si vous avez besoin d'une copie des données, effectuez une sauvegarde.
- J'ai supprimé mon instance de stockage. Pourquoi est-ce que je vois toujours mon instance?
- Une fois que vous avez retiré le stockage persistant, il peut s'écouler jusqu'à 72 heures avant que le retrait soit total et que le stockage disparaisse de votre console ou interface de ligne de commande IBM Cloud.
Nettoyage de stockage persistant
Retirez la PVC, le PV et l'instance de stockage de votre compte IBM Cloud afin d'éviter d'autres frais liés à votre stockage persistant.
Avant de commencer :
- Vérifiez que vous avez sauvegardé les données que vous souhaitez conserver.
- Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.
Pour nettoyer des données persistantes :
-
Répertoriez les réservations de volume persistant (PVC) figurant dans votre cluster et notez le nom de la PVC (
NAME), la classe de stockage (STORAGECLASS) et le nom du volume persistant lié à la PVC indiqué sousVOLUME.kubectl get pvcExemple de sortie
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE claim1 Bound pvc-06886b77-102b-11e8-968a-f6612bb731fb 20Gi RWO class 78d claim2 Bound pvc-457a2b96-fafc-11e7-8ff9-b6c8f770356c 4Gi RWX class 105d claim3 Bound pvc-1efef0ba-0c48-11e8-968a-f6612bb731fb 24Gi RWX class 83d -
Passez en revue la
ReclaimPolicyet lebillingTypecorrespondant à la classe de stockage.kubectl describe storageclass <storageclass_name>Si la politique de récupération indique
Delete, votre volume persistant et le stockage physique sont supprimés en même temps que la PVC. Si la politique de récupération indiqueRetainou si vous avez mis à disposition votre stockage sans classe de stockage, votre volume persistant et votre stockage physique ne sont pas supprimés en même temps que la PVC. Vous devez supprimer la PVC, le volume persistant et le stockage physique séparément.Si vous êtes facturé tous les mois pour le stockage, vous êtes redevable pour le mois complet, même si vous supprimez le stockage avant la fin du cycle de facturation.
-
Supprimez les pods qui montent la PVC. Répertoriez les pods qui montent la PVC. Si aucun pod n'est retourné dans votre sortie CLI, vous n'avez pas de pod qui utilise le PVC.
kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"Exemple de sortie
depl-12345-prz7b: claim1 -
Supprimez le pod utilisant la PVC. Si le pod fait partie d'un déploiement, retirez ce déploiement.
kubectl delete pod <pod_name> -
Vérifiez que le pod est supprimé.
kubectl get pods -
Supprimez la PVC.
kubectl delete pvc <pvc_name> -
Examinez le statut de votre volume persistant. Utilisez le nom du volume persistant que vous avez récupéré précédemment sous
VOLUME. Lorsque vous supprimez la PVC, le volume persistant lié à cette PVC est libéré. Selon le mode de mise à disposition de votre stockage, votre volume persistant va passer à l'étatDeleting(suppression) si sa suppression est automatique ou à l'étatReleased(libéré) si vous devez le supprimer manuellement. Remarque : pour les volumes persistants supprimés automatiquement, l'état peut brièvement indiquerReleasedavant sa suppression définitive. Exécutez à nouveau la commande au bout de quelques minutes pour voir si le volume persistant est supprimé.kubectl get pv <pv_name> -
Si votre volume persistant n'est pas supprimé, supprimez-le manuellement.
kubectl delete pv <pv_name> -
Vérifiez que le volume persistant (PV) est supprimé.
kubectl get pv -
Répertoriez l'instance de stockage physique que votre volume persistant a pointé et notez la
idde l'instance de stockage physique.ibmcloud sl file volume-list --columns id --columns notes | grep <pv_name>Exemple de sortie pour File Storage for Classic.
id notes 12345678 {"plugin":"ibm-file-plugin-5b55b7b77b-55bb7","region":"us-south","cluster":"aa1a11a1a11b2b2bb22b22222c3c3333","type":"Endurance","ns":"default","pvc":"mypvc","pv":"pvc-d979977d-d79d-77d9-9d7d-d7d97ddd99d7","storageclass":"ibmc-file-gold"}"plugin":"ibm-file-plugin-5b55b7b77b-55bb7"- Le plug-in de stockage utilisé par le cluster.
"region":"us-south"- Région dans laquelle se trouve votre cluster.
"cluster":"aa1a11a1a11b2b2bb22b22222c3c3333"- L'ID du cluster associé à l'instance de stockage.
"type":"Endurance"- Le type de stockage de fichier ou de bloc,
EnduranceouPerformance. "ns":"default"- L'espace de nom sur lequel l'instance de stockage est déployée.
"pvc":"mypvc"- Le nom du circuit virtuel permanent associé à l'instance de stockage.
"pv":"pvc-d979977d-d79d-77d9-9d7d-d7d97ddd99d7"- Le PV qui est associé à l'instance de stockage.
"storageclass":"ibmc-file-gold"- Type de classe de stockage: bronze, argent, or ou personnalisé.
-
Retirez l'instance de stockage physique.
ibmcloud sl file volume-cancel <classic_file_id> -
Vérifiez que l'instance de stockage physique est supprimée.
ibmcloud sl file volume-list
L'exécution du processus de suppression peut durer jusqu'à 72 heures.
Attribution de profils de confiance au stockage de fichiers
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.