5.2. Gestion de la classe de stockage par défaut
5.2.1. Aperçu général Copier lienLien copié sur presse-papiers!
La gestion de la classe de stockage par défaut vous permet d’atteindre plusieurs objectifs différents:
- L’application d’un provisionnement statique en désactivant le provisionnement dynamique.
- Lorsque vous avez d’autres classes de stockage préférées, empêchant l’opérateur de stockage de recréer la classe de stockage initiale par défaut.
- En renommant, ou en changeant autrement, la classe de stockage par défaut
Afin d’atteindre ces objectifs, vous modifiez le paramètre du champ spec.storageClassState dans l’objet ClusterCSIDriver. Les paramètres possibles pour ce champ sont:
- L’opérateur de l’interface de stockage de conteneurs (CSI) gère activement sa classe de stockage par défaut, de sorte que la plupart des modifications manuelles apportées par un administrateur de cluster à la classe de stockage par défaut soient supprimées et que la classe de stockage par défaut soit continuellement recréée si vous essayez de la supprimer manuellement.
- Non géré : Vous pouvez modifier la classe de stockage par défaut. L’opérateur CSI ne gère pas activement les classes de stockage, de sorte qu’il ne concilie pas la classe de stockage par défaut qu’il crée automatiquement.
- Les opérateurs CSI suppriment la classe de stockage par défaut.
5.2.2. Gérer la classe de stockage par défaut à l’aide de la console Web Copier lienLien copié sur presse-papiers!
Conditions préalables
- Accès au service Red Hat OpenShift sur la console web AWS.
- Accès au cluster avec des privilèges cluster-admin.
Procédure
Gérer la classe de stockage par défaut à l’aide de la console web:
- Connectez-vous à la console web.
- Cliquez sur Administration > CustomResourceDefinitions.
- Dans la page CustomResourceDefinitions, tapez clustercsidriver pour trouver l’objet ClusterCSIDriver.
- Cliquez sur ClusterCSIDriver, puis cliquez sur l’onglet Instances.
- Cliquez sur le nom de l’instance souhaitée, puis cliquez sur l’onglet YAML.
Ajoutez le champ spec.storageClassState avec une valeur de Managed, Ungaged ou Removed.
Exemple :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- champ Sp.storageClassState réglé sur "Non géré"
- Cliquez sur Save.
5.2.3. Gestion de la classe de stockage par défaut à l’aide du CLI Copier lienLien copié sur presse-papiers!
Conditions préalables
- Accès au cluster avec des privilèges cluster-admin.
Procédure
Afin de gérer la classe de stockage à l’aide du CLI, exécutez la commande suivante:
oc patch clustercsidriver $DRIVERNAME --type=merge -p "{\"spec\":{\"storageClassState\":\"${STATE}\"}}"
oc patch clustercsidriver $DRIVERNAME --type=merge -p "{\"spec\":{\"storageClassState\":\"${STATE}\"}}"
- 1
- Lorsque ${STATE} est "Supprimé" ou "Géré" ou "Non géré".
Lorsque $DRIVERNAME est le nom du fournisseur. Le nom du provisionneur peut être trouvé en exécutant la commande oc get sc.
5.2.4. Classes de stockage absentes ou multiples par défaut Copier lienLien copié sur presse-papiers!
5.2.4.1. Classes de stockage par défaut multiples Copier lienLien copié sur presse-papiers!
De multiples classes de stockage par défaut peuvent se produire si vous marquez une classe de stockage non par défaut par défaut et ne désglez pas la classe de stockage par défaut existante, ou si vous créez une classe de stockage par défaut lorsqu’une classe de stockage par défaut est déjà présente. Avec plusieurs classes de stockage par défaut présentes, toute revendication de volume persistant (PVC) demandant la classe de stockage par défaut (pvc.spec.storageClassName=nil) obtient la classe de stockage par défaut la plus récente, quel que soit l’état par défaut de cette classe de stockage, et l’administrateur reçoit une alerte dans le tableau de bord des alertes qu’il existe plusieurs classes de stockage par défaut, MultipleDefaultStorageClasses.
5.2.4.2. Absence de classe de stockage par défaut Copier lienLien copié sur presse-papiers!
Il existe deux scénarios possibles où les PVC peuvent tenter d’utiliser une classe de stockage par défaut inexistante:
- L’administrateur supprime la classe de stockage par défaut ou la marque comme non par défaut, puis un utilisateur crée un PVC demandant la classe de stockage par défaut.
- Lors de l’installation, l’installateur crée un PVC demandant la classe de stockage par défaut, qui n’a pas encore été créé.
Dans les scénarios précédents, les PVC restent indéfiniment dans l’état en attente. Afin de résoudre cette situation, créez une classe de stockage par défaut ou déclarez l’une des classes de stockage existantes par défaut. Dès que la classe de stockage par défaut est créée ou déclarée, les PVC obtiennent la nouvelle classe de stockage par défaut. Dans la mesure du possible, les PVC se lient éventuellement à des PV pourvus statiquement ou dynamiquement comme d’habitude, et sortent de l’état en attente.
5.2.5. Changer la classe de stockage par défaut Copier lienLien copié sur presse-papiers!
La procédure suivante permet de modifier la classe de stockage par défaut.
À titre d’exemple, si vous avez deux classes de stockage définies, gp3 et standard, et que vous souhaitez changer la classe de stockage par défaut de gp3 à standard.
Conditions préalables
- Accès au cluster avec des privilèges cluster-admin.
Procédure
Changer la classe de stockage par défaut:
Liste des classes de stockage:
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME TYPE gp3 (default) kubernetes.io/aws-ebs standard kubernetes.io/aws-ebs
NAME TYPE gp3 (default) kubernetes.io/aws-ebs
1 standard kubernetes.io/aws-ebs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- (par défaut) indique la classe de stockage par défaut.
Faites de la classe de stockage souhaitée la valeur par défaut.
Dans la classe de stockage souhaitée, définissez l’annotation de classe storageclass.kubernetes.io/is-default-class en exécutant la commande suivante:
oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
$ oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteIl est possible d’avoir plusieurs classes de stockage par défaut pendant une courte période. Cependant, vous devez vous assurer qu’une seule classe de stockage par défaut existe éventuellement.
Avec plusieurs classes de stockage par défaut présentes, toute revendication de volume persistant (PVC) demandant la classe de stockage par défaut (pvc.spec.storageClassName=nil) obtient la classe de stockage par défaut la plus récente, quel que soit l’état par défaut de cette classe de stockage, et l’administrateur reçoit une alerte dans le tableau de bord des alertes qu’il existe plusieurs classes de stockage par défaut, MultipleDefaultStorageClasses.
Supprimez le paramètre de classe de stockage par défaut de l’ancienne classe de stockage par défaut.
Dans le cas de l’ancienne classe de stockage par défaut, modifiez la valeur de l’annotation de la classe storageclass.kubernetes.io/is-default-class en exécutant la commande suivante:
oc patch storageclass gp3 -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
$ oc patch storageclass gp3 -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifier les changements:
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME TYPE gp3 kubernetes.io/aws-ebs standard (default) kubernetes.io/aws-ebs
NAME TYPE gp3 kubernetes.io/aws-ebs standard (default) kubernetes.io/aws-ebs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow