5.16. Opérateur de pilote CSI OpenStack Cinder
5.16.1. Vue d'ensemble
OpenShift Container Platform est capable de provisionner des volumes persistants (PV) à l'aide du pilote Container Storage Interface (CSI) pour OpenStack Cinder.
Il est recommandé de se familiariser avec le stockage persistant et la configuration des volumes CSI lorsqu'on travaille avec un opérateur et un pilote d'interface de stockage de conteneurs (CSI).
Pour créer des PV provisionnées CSI qui se montent sur des ressources de stockage OpenStack Cinder, OpenShift Container Platform installe l'opérateur OpenStack Cinder CSI Driver et le pilote OpenStack Cinder CSI dans l'espace de noms openshift-cluster-csi-drivers
.
- Le site OpenStack Cinder CSI Driver Operator fournit une classe de stockage CSI que vous pouvez utiliser pour créer des PVC.
- Le site OpenStack Cinder CSI driver vous permet de créer et de monter des PV OpenStack Cinder.
Pour OpenShift Container Platform, la migration automatique d'OpenStack Cinder in-tree vers le pilote CSI est disponible en tant que fonctionnalité Technology Preview (TP). Lorsque la migration est activée, les volumes provisionnés à l'aide du plugin in-tree existant sont automatiquement migrés pour utiliser le pilote OpenStack Cinder CSI. Pour plus d'informations, voir la fonctionnalité de migration automatique CSI.
5.16.2. À propos du CSI
Les fournisseurs de stockage ont traditionnellement fourni des pilotes de stockage dans le cadre de Kubernetes. Avec la mise en œuvre de l'interface de stockage des conteneurs (CSI), les fournisseurs tiers peuvent à la place fournir des plugins de stockage à l'aide d'une interface standard sans jamais avoir à modifier le code de base de Kubernetes.
Les opérateurs CSI offrent aux utilisateurs d'OpenShift Container Platform des options de stockage, telles que les instantanés de volume, qui ne sont pas possibles avec les plugins de volume dans l'arborescence.
OpenShift Container Platform utilise par défaut un plugin in-tree (non-CSI) pour provisionner le stockage Cinder.
Dans les prochaines versions d'OpenShift Container Platform, les volumes provisionnés à l'aide des plugins in-tree existants sont prévus pour une migration vers leur pilote CSI équivalent. La migration automatique CSI devrait être transparente. La migration ne modifie pas la façon dont vous utilisez tous les objets API existants, tels que les volumes persistants, les réclamations de volumes persistants et les classes de stockage. Pour plus d'informations sur la migration, voir Migration automatique CSI.
Après la migration complète, les plugins in-tree seront éventuellement supprimés dans les futures versions d'OpenShift Container Platform.
5.16.3. Faire de l'OpenStack Cinder CSI la classe de stockage par défaut
Le pilote OpenStack Cinder CSI utilise la clé de paramètre cinder.csi.openstack.org
pour prendre en charge le provisionnement dynamique.
Pour activer le provisionnement OpenStack Cinder CSI dans OpenShift Container Platform, il est recommandé d'écraser la classe de stockage par défaut dans l'arborescence avec standard-csi
. Vous pouvez également créer la revendication de volume persistant (PVC) et spécifier la classe de stockage comme "standard-csi".
Dans OpenShift Container Platform, la classe de stockage par défaut fait référence au pilote Cinder in-tree. Cependant, lorsque la migration automatique CSI est activée, les volumes créés à l'aide de la classe de stockage par défaut utilisent en réalité le pilote CSI.
Procédure
Suivez les étapes suivantes pour appliquer la classe de stockage standard-csi
en remplaçant la classe de stockage par défaut dans l'arborescence.
Indiquez la classe de stockage :
$ oc get storageclass
Exemple de sortie
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE standard(default) cinder.csi.openstack.org Delete WaitForFirstConsumer true 46h standard-csi kubernetes.io/cinder Delete WaitForFirstConsumer true 46h
Modifiez la valeur de l'annotation
storageclass.kubernetes.io/is-default-class
enfalse
pour la classe de stockage par défaut, comme indiqué dans l'exemple suivant :$ oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
Faites d'une autre classe de stockage la classe par défaut en ajoutant ou en modifiant l'annotation à l'adresse suivante :
storageclass.kubernetes.io/is-default-class=true
.$ oc patch storageclass standard-csi -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
Vérifiez que le PVC fait désormais référence à la classe de stockage CSI par défaut :
$ oc get storageclass
Exemple de sortie
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE standard kubernetes.io/cinder Delete WaitForFirstConsumer true 46h standard-csi(default) cinder.csi.openstack.org Delete WaitForFirstConsumer true 46h
Facultatif : Vous pouvez définir un nouveau PVC sans avoir à spécifier la classe de stockage :
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cinder-claim spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
Un PVC qui ne spécifie pas de classe de stockage spécifique est automatiquement provisionné en utilisant la classe de stockage par défaut.
Facultatif : Une fois le nouveau fichier configuré, créez-le dans votre cluster :
$ oc create -f cinder-claim.yaml
Ressources supplémentaires