Chapitre 5. Interface de stockage de conteneurs (CSI)


5.1. Configuration des volumes CSI

L’interface de stockage de conteneurs (CSI) permet au service Red Hat OpenShift sur AWS de consommer du stockage à partir des extrémités arrière du stockage qui implémentent l’interface CSI en tant que stockage persistant.

Note

Le Red Hat OpenShift Service sur AWS 4 prend en charge la version 1.6.0 de la spécification CSI.

5.1.1. Architecture CSI

Les pilotes CSI sont généralement expédiés sous forme d’images de conteneur. Ces conteneurs ne sont pas au courant de Red Hat OpenShift Service sur AWS où ils s’exécutent. Afin d’utiliser l’arrière de stockage compatible CSI dans Red Hat OpenShift Service sur AWS, l’administrateur du cluster doit déployer plusieurs composants qui servent de pont entre Red Hat OpenShift Service sur AWS et le pilote de stockage.

Le diagramme suivant fournit une vue d’ensemble de haut niveau sur les composants fonctionnant en pods dans le Red Hat OpenShift Service sur AWS cluster.

Il est possible d’exécuter plusieurs pilotes CSI pour différentes extrémités de stockage. Chaque pilote a besoin de son propre déploiement de contrôleurs externes et d’un démon défini avec le pilote et le registraire CSI.

5.1.1.1. Contrôleurs CSI externes

Contrôleurs CSI externes est un déploiement qui déploie un ou plusieurs pods avec cinq conteneurs:

  • Le conteneur snapshotter montre les objets VolumeSnapshot et VolumeSnapshotContent et est responsable de la création et de la suppression de l’objet VolumeSnapshotContent.
  • Le conteneur de resizer est un conteneur sidecar qui surveille les mises à jour et déclenche les opérations ControllerExpandVolume par rapport à un point de terminaison CSI si vous demandez plus de stockage sur l’objet PersistentVolumeClaim.
  • Le conteneur de fixation CSI externe traduit les appels de connexion et de détachement de Red Hat OpenShift Service sur AWS vers les appels respectifs ControllerPublish et ControllerUnpublish au pilote CSI.
  • Conteneur de provisionneur CSI externe qui traduit la fourniture et supprime les appels de Red Hat OpenShift Service sur AWS pour les appels respectifs CreateVolume et DeleteVolume au pilote CSI.
  • C) Un conteneur de conducteur CSI.

L’attacheur CSI et les conteneurs de provisionner CSI communiquent avec le conteneur conducteur CSI en utilisant UNIX Domain Sockets, en veillant à ce qu’aucune communication CSI ne quitte la pod. Le conducteur CSI n’est pas accessible de l’extérieur de la gousse.

Note

Les opérations de fixation, de détachement, de provision et de suppression exigent généralement que le pilote CSI utilise des informations d’identification sur le backend de stockage. Exécutez les pods de contrôleur CSI sur les nœuds d’infrastructure afin que les informations d’identification ne soient jamais divulguées aux processus utilisateurs, même en cas de violation de sécurité catastrophique sur un nœud de calcul.

Note

L’attacheur externe doit également fonctionner pour les pilotes CSI qui ne prennent pas en charge les opérations d’attache ou de détachement de tiers. L’attacheur externe n’émettra aucune opération ControllerPublish ou ControllerUnpublish au pilote CSI. Cependant, il doit toujours fonctionner pour implémenter le service Red Hat OpenShift nécessaire sur l’API de pièce jointe AWS.

5.1.1.2. Jeu de démon de pilote CSI

Le jeu de démon de pilote CSI exécute un pod sur chaque nœud qui permet à Red Hat OpenShift Service sur AWS de monter le stockage fourni par le pilote CSI sur le nœud et de l’utiliser dans les charges de travail des utilisateurs (pods) comme volumes persistants (PV). Le pod avec le pilote CSI installé contient les conteneurs suivants:

  • CSI Driver registrar, qui enregistre le pilote CSI dans le service de nœud ouvert fonctionnant sur le nœud. Le processus openshift-node s’exécute sur le nœud puis se connecte directement au pilote CSI à l’aide du Socket de Domaine UNIX disponible sur le nœud.
  • C’est un conducteur de CSI.

Le pilote CSI déployé sur le nœud doit avoir le moins d’informations d’identification à l’arrière du stockage que possible. Le service Red Hat OpenShift sur AWS n’utilisera l’ensemble de plugins de nœuds d’appels CSI tels que NodePublish/NodeUnpublish et NodeStage/NodeUnstage, si ces appels sont implémentés.

Le service OpenShift Red Hat sur AWS installe certains pilotes CSI par défaut, offrant aux utilisateurs des options de stockage qui ne sont pas possibles avec des plugins de volume dans l’arbre.

Afin de créer des volumes persistants fournis par CSI qui s’adaptent à ces actifs de stockage pris en charge, Red Hat OpenShift Service sur AWS installe par défaut l’opérateur de pilotes CSI nécessaire, le pilote CSI et la classe de stockage requise. Consultez la documentation de l’opérateur CSI pour plus de détails sur l’espace de noms par défaut de l’opérateur et du conducteur par défaut.

Le tableau suivant décrit les pilotes CSI qui sont installés avec Red Hat OpenShift Service sur AWS et les fonctionnalités de CSI qu’ils prennent en charge, tels que les instantanés de volume et le redimensionnement.

En plus des pilotes énumérés dans le tableau suivant, ROSA fonctionne avec les pilotes CSI de fournisseurs de stockage tiers. Le Red Hat ne supervise pas les fournisseurs tiers ou les pilotes CSI connectés et les fournisseurs contrôlent entièrement le code source, le déploiement, l’exploitation et la compatibilité Kubernetes. Ces provisionneurs de volume sont considérés comme gérés par le client et les fournisseurs respectifs sont responsables de fournir un soutien. Consultez les responsabilités partagées pour Red Hat OpenShift Service sur la matrice AWS pour plus d’informations.

Expand
Tableau 5.1. Fonctionnalités et pilotes CSI pris en charge dans Red Hat OpenShift Service sur AWS
Conducteur CSIInstantanés de volume CSIAperçus du groupe de volume CSI [1]Clonage CSICSI redimensionnementLes volumes éphémères en ligne

AWS EBS

 ✅

 ✅

AWS EFS

Le stockage LVM

 ✅

 ✅

 ✅

5.1.3. Approvisionnement dynamique

Le provisionnement dynamique du stockage persistant dépend des capacités du pilote CSI et de l’arrière de stockage sous-jacent. Le fournisseur du pilote CSI doit documenter comment créer une classe de stockage dans Red Hat OpenShift Service sur AWS et les paramètres disponibles pour la configuration.

La classe de stockage créée peut être configurée pour activer le provisionnement dynamique.

Procédure

  • Créez une classe de stockage par défaut qui garantit que tous les PVC qui ne nécessitent aucune classe de stockage spéciale sont fournis par le pilote CSI installé.

    # oc create -f - << EOF
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: <storage-class> 
    1
    
      annotations:
        storageclass.kubernetes.io/is-default-class: "true"
    provisioner: <provisioner-name> 
    2
    
    parameters:
    EOF
    Copy to Clipboard Toggle word wrap
    1
    Le nom de la classe de stockage qui sera créée.
    2
    Le nom du pilote CSI installé.

5.1.4. Exemple en utilisant le pilote CSI

L’exemple suivant installe un modèle MySQL par défaut sans aucune modification du modèle.

Conditions préalables

  • Le pilote CSI a été déployé.
  • La classe de stockage a été créée pour le provisionnement dynamique.

Procédure

  • Créer le modèle MySQL:

    # oc new-app mysql-persistent
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    --> Deploying template "openshift/mysql-persistent" to project default
    ...
    Copy to Clipboard Toggle word wrap

    # oc get pvc
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME              STATUS    VOLUME                                   CAPACITY
    ACCESS MODES   STORAGECLASS   AGE
    mysql             Bound     kubernetes-dynamic-pv-3271ffcb4e1811e8   1Gi
    RWO            cinder         3s
    Copy to Clipboard Toggle word wrap

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat