Rechercher

5.19. Opérateur de pilote VMware vSphere CSI

download PDF

5.19.1. Vue d'ensemble

OpenShift Container Platform peut provisionner des volumes persistants (PV) à l'aide du pilote VMware vSphere Container Storage Interface (CSI) pour les volumes Virtual Machine Disk (VMDK).

Il est recommandé de se familiariser avec le stockage persistant et la configuration des volumes CSI lorsque l'on travaille avec un opérateur et un pilote CSI.

Pour créer des volumes persistants (PV) provisionnés par CSI qui se montent sur des ressources de stockage vSphere, OpenShift Container Platform installe l'opérateur vSphere CSI Driver Operator et le pilote vSphere CSI par défaut dans l'espace de noms openshift-cluster-csi-drivers.

  • vSphere CSI Driver Operator: L'opérateur fournit une classe de stockage, appelée thin-csi, que vous pouvez utiliser pour créer des réclamations de volumes persistants (PVC). L'opérateur du pilote vSphere CSI prend en charge le provisionnement dynamique des volumes en permettant la création de volumes de stockage à la demande, ce qui évite aux administrateurs de clusters de devoir préprovisionner le stockage.
  • vSphere CSI driver: Le pilote permet de créer et de monter des PV vSphere. Dans OpenShift Container Platform 4.12, la version du pilote est 2.6.1. Le pilote vSphere CSI prend en charge tous les systèmes de fichiers pris en charge par la version sous-jacente de Red Hat Core OS, y compris XFS et Ext4. Pour plus d'informations sur les systèmes de fichiers pris en charge, voir Vue d'ensemble des systèmes de fichiers disponibles.
Important

OpenShift Container Platform utilise par défaut un plugin in-tree (non-CSI) pour provisionner le stockage vSphere.

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.

Note

Le pilote vSphere CSI prend en charge le provisionnement dynamique et statique. Lorsque vous utilisez le provisionnement statique dans les spécifications des PV, n'utilisez pas la clé storage.kubernetes.io/csiProvisionerIdentity dans csi.volumeAttributes car cette clé indique des PV provisionnés dynamiquement.

5.19.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.

5.19.3. politique de stockage vSphere

La classe de stockage vSphere CSI Operator Driver utilise la politique de stockage de vSphere. OpenShift Container Platform crée automatiquement une politique de stockage qui cible le datastore configuré dans la configuration du cloud :

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: thin-csi
provisioner: csi.vsphere.vmware.com
parameters:
  StoragePolicyName: "$openshift-storage-policy-xxxx"
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: false
reclaimPolicy: Delete

5.19.4. Prise en charge des volumes vSphere ReadWriteMany

Si l'environnement vSphere sous-jacent prend en charge le service de fichiers vSAN, l'opérateur de pilote de l'interface de stockage de conteneurs (CSI) vSphere installé par OpenShift Container Platform prend en charge le provisionnement des volumes ReadWriteMany (RWX). Si le service de fichiers vSAN n'est pas configuré, le seul mode d'accès disponible est ReadWriteOnce (RWO). Si le service de fichiers vSAN n'est pas configuré et que vous demandez RWX, le volume n'est pas créé et une erreur est consignée.

Pour plus d'informations sur la configuration du service de fichiers vSAN dans votre environnement, voir Service de fichiers vSAN.

Vous pouvez demander des volumes RWX en effectuant la demande de volume persistant (PVC) suivante :

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim
spec:
  resources:
    requests:
      storage: 1Gi
  accessModes:
     - ReadWriteMany
  storageClassName: thin-csi

La demande d'un PVC du type de volume RWX devrait entraîner le provisionnement de volumes persistants (PV) soutenus par le service de fichiers vSAN.

5.19.5. VMware vSphere CSI Driver Operator requirements

Pour installer vSphere CSI Driver Operator, les conditions suivantes doivent être remplies :

  • VMware vSphere version 7.0 Update 2 or later
  • vCenter 7.0 Update 2 or later
  • Virtual machines of hardware version 15 or later
  • Aucun pilote vSphere CSI tiers n'est déjà installé dans le cluster

Si un pilote vSphere CSI tiers est présent dans le cluster, OpenShift Container Platform ne l'écrase pas. La présence d'un pilote vSphere CSI tiers empêche OpenShift Container Platform de se mettre à niveau vers OpenShift Container Platform 4.13 ou une version ultérieure.

To remove a third-party CSI driver, see Removing a third-party vSphere CSI Driver.

5.19.6. Suppression d'un pilote d'opérateur vSphere CSI tiers

OpenShift Container Platform 4.10, et les versions ultérieures, inclut une version intégrée du pilote d'opérateur vSphere Container Storage Interface (CSI) qui est prise en charge par Red Hat. Si vous avez installé un pilote vSphere CSI fourni par la communauté ou un autre fournisseur, les mises à jour vers la prochaine version majeure d'OpenShift Container Platform, telle que 4.13, ou ultérieure, pourraient être désactivées pour votre cluster.

Les clusters OpenShift Container Platform 4.12, et ultérieurs, sont toujours entièrement pris en charge, et les mises à jour vers les versions z-stream de 4.12, telles que 4.12.z, ne sont pas bloquées, mais vous devez corriger cet état en supprimant le pilote vSphere CSI tiers avant que les mises à jour vers la prochaine version majeure d'OpenShift Container Platform ne puissent avoir lieu. La suppression du pilote vSphere CSI tiers ne nécessite pas la suppression des objets de volume persistant (PV) associés, et aucune perte de données ne devrait se produire.

Note

Ces instructions peuvent ne pas être complètes ; il convient donc de consulter le guide de désinstallation du fournisseur ou du prestataire communautaire pour s'assurer de la suppression du pilote et de ses composants.

Pour désinstaller le pilote vSphere CSI tiers :

  1. Supprimez les objets tiers vSphere CSI Driver (VMware vSphere Container Storage Plugin) Deployment et Daemonset.
  2. Supprimer les objets configmap et secret qui ont été installés précédemment avec le pilote vSphere CSI.
  3. Supprimez l'objet pilote vSphere CSI tiers CSIDriver:

    ~ $ oc delete CSIDriver csi.vsphere.vmware.com
    csidriver.storage.k8s.io "csi.vsphere.vmware.com" deleted

Une fois que vous avez supprimé le pilote vSphere CSI tiers du cluster OpenShift Container Platform, l'installation du pilote vSphere CSI Operator Driver de Red Hat reprend automatiquement, et toutes les conditions qui pourraient bloquer les mises à niveau vers OpenShift Container Platform 4.11, ou une version ultérieure, sont automatiquement supprimées. Si vous aviez des objets vSphere CSI PV existants, leur cycle de vie est maintenant géré par le pilote vSphere CSI Operator Driver de Red Hat.

5.19.7. Configuration de la topologie vSphere CSI

OpenShift Container Platform offre la possibilité de déployer OpenShift Container Platform for vSphere sur différentes zones et régions, ce qui vous permet de déployer sur plusieurs clusters de calcul, contribuant ainsi à éviter un point de défaillance unique.

Note

OpenShift Container Platform sur vSphere ne prend pas en charge plusieurs centres de données.

Pour ce faire, il faut définir des catégories de zones et de régions dans vCenter, puis assigner ces catégories à différents domaines de défaillance, tels qu'un cluster de calcul, en créant des balises pour ces catégories de zones et de régions. Après avoir créé les catégories appropriées et attribué des balises aux objets vCenter, vous pouvez créer des ensembles de machines supplémentaires qui créent des machines virtuelles (VM) responsables de la planification des pods dans ces domaines de défaillance.

Procédure

  1. Dans l'interface graphique du client VMware vCenter vSphere, définissez les catégories et les balises appropriées pour les zones et les régions.

    Bien que vSphere vous permette de créer des catégories avec n'importe quel nom arbitraire, OpenShift Container Platform recommande fortement l'utilisation des noms openshift-region et openshift-zone pour définir la topologie.

    L'exemple suivant définit deux domaines de défaillance avec une région et deux zones :

    Tableau 5.4. topologie vSphere avec une région et deux zones
    Grappe de calculDomaine de défaillanceDescription

    Cluster de calcul : ocp1, Datacenter : Atlanta

    openshift-region : us-east-1 (tag), openshift-zone : us-east-1a (tag)

    Ceci définit un domaine de défaillance dans la région us-east-1 avec la zone us-east-1a.

    Groupe d'ordinateurs : ocp2, Centre de données : Atlanta

    openshift-region : us-east-1 (tag), openshift-zone : us-east-1b (tag)

    Cela définit un domaine de défaillance différent au sein de la même région, appelé us-east-1b.

    Pour plus d'informations sur les catégories et les balises vSphere, voir la documentation VMware vSphere.

  2. Pour permettre au pilote de l'interface de stockage de conteneurs (CSI) de détecter cette topologie, modifiez le fichier YAML de l'objet clusterCSIDriver, section driverConfig:

    • Spécifiez les catégories openshift-zone et openshift-region que vous avez créées précédemment.
    • Définir driverType à vSphere.

      ~ $ oc edit clustercsidriver csi.vsphere.vmware.com -o yaml

      Exemple de sortie

      apiVersion: operator.openshift.io/v1
      kind: ClusterCSIDriver
      metadata:
       name: csi.vsphere.vmware.com
      spec:
       logLevel: Normal
       managementState: Managed
       observedConfig: null
       operatorLogLevel: Normal
       unsupportedConfigOverrides: null
       driverConfig:
        driverType: vSphere 1
          vSphere:
            topologyCategories: 2
            - openshift-zone
            - openshift-region

      1
      Assurez-vous que driverType est défini sur vSphere.
      2
      openshift-zone et openshift-region catégories créées précédemment dans vCenter.
  3. Vérifiez que l'objet CSINode possède des clés de topologie en exécutant les commandes suivantes :

    ~ $ oc get csinode

    Exemple de sortie

    NAME                        DRIVERS     AGE
    co8-4s88d-infra-2m5vd       1           27m
    co8-4s88d-master-0          1           70m
    co8-4s88d-master-1          1           70m
    co8-4s88d-master-2          1           70m
    co8-4s88d-worker-j2hmg      1           47m
    co8-4s88d-worker-mbb46      1           47m
    co8-4s88d-worker-zlk7d      1           47m

    ~ $ oc get csinode co8-4s88d-worker-j2hmg -o yaml

    Exemple de sortie

    ...
    spec:
        drivers:
        - allocatable:
            count: 59
        name: csi-vsphere.vmware.com
        nodeID: co8-4s88d-worker-j2hmg
        topologyKeys: 1
        - topology.csi.vmware.com/openshift-zone
        - topology.csi.vmware.com/openshift-region

    1
    Clés de topologie des catégories vSphere openshift-zone et openshift-region.
    Note

    CSINode peuvent mettre un certain temps à recevoir les informations topologiques mises à jour. Après la mise à jour du pilote, les objets CSINode devraient contenir des clés de topologie.

  4. Créer une balise à attribuer aux datastores dans les domaines de défaillance :

    Lorsqu'une OpenShift Container Platform s'étend sur plus d'un domaine de défaillance, le datastore peut ne pas être partagé à travers ces domaines de défaillance, c'est pourquoi le provisionnement topologique des volumes persistants (PV) est utile.

    1. Dans vCenter, créez une catégorie pour baliser les datastores. Par exemple, openshift-zonal-datastore-cat. Vous pouvez utiliser n'importe quel autre nom de catégorie, à condition que la catégorie soit utilisée uniquement pour baliser les datastores participant au cluster OpenShift Container Platform. Assurez-vous également que StoragePod, Datastore et Folder sont sélectionnés en tant qu'entités associables pour la catégorie créée.
    2. Dans vCenter, créez une balise qui utilise la catégorie précédemment créée. Cet exemple utilise le nom de balise openshift-zonal-datastore.
    3. Attribuer la balise créée précédemment (dans cet exemple openshift-zonal-datastore) à chaque datastore d'un domaine de défaillance qui serait pris en compte pour le provisionnement dynamique.

      Note

      Vous pouvez utiliser les noms de votre choix pour les catégories et les étiquettes. Les noms utilisés dans cet exemple sont fournis à titre de recommandation. Assurez-vous que les balises et les catégories que vous définissez n'identifient que les datastores qui sont partagés avec tous les hôtes du cluster OpenShift Container Platform.

  5. Créer une stratégie de stockage qui cible les datastores basés sur les balises dans chaque domaine de défaillance :

    1. Dans vCenter, dans le menu principal, cliquez sur Policies and Profiles.
    2. Sur la page Policies and Profiles, dans le volet de navigation, cliquez sur VM Storage Policies.
    3. Cliquez sur CREATE.
    4. Saisissez un nom pour la stratégie de stockage.
    5. Pour les règles, choisissez Tag Placement rules et sélectionnez la balise et la catégorie qui cible les datastores souhaités (dans cet exemple, la balise openshift-zonal-datastore ).

      Les magasins de données sont répertoriés dans le tableau de compatibilité du stockage.

  6. Créez une nouvelle classe de stockage qui utilise la nouvelle politique de stockage zoné :

    1. Cliquez sur Storage > StorageClasses.
    2. Sur la page StorageClasses, cliquez sur Create StorageClass.
    3. Saisissez un nom pour la nouvelle classe de stockage à l'adresse Name.
    4. Sous Provisioner, sélectionnez csi.vsphere.vmware.com.
    5. Sous Additional parameters, pour le paramètre StoragePolicyName, définissez Value comme étant le nom de la nouvelle stratégie de stockage zoné que vous avez créée précédemment.
    6. Cliquez sur Create.

      Exemple de sortie

      kind: StorageClass
      apiVersion: storage.k8s.io/v1
      metadata:
        name: zoned-sc 1
      provisioner: csi.vsphere.vmware.com
      parameters:
        StoragePolicyName: zoned-storage-policy 2
      reclaimPolicy: Delete
      allowVolumeExpansion: true
      volumeBindingMode: WaitForFirstConsumer

      1
      Nouveau nom de classe de stockage tenant compte de la topologie.
      2
      Spécifier la politique de stockage par zones.
      Note

      Vous pouvez également créer la classe de stockage en modifiant le fichier YAML précédent et en exécutant la commande oc create -f $FILE.

Résultats

La création de réclamations de volumes persistants (PVC) et de PV à partir de la classe de stockage adaptée à la topologie est véritablement zonale et devrait utiliser le magasin de données dans leur zone respective en fonction de la façon dont les pods sont planifiés :

~ $ oc get pv <pv-name> -o yaml

Exemple de sortie

...
nodeAffinity:
  required:
    nodeSelectorTerms:
    - matchExpressions:
      - key: topology.csi.vmware.com/openshift-zone 1
        operator: In
        values:
        - <openshift-zone>
      -key: topology.csi.vmware.com/openshift-region 2
        operator: In
        values:
        - <openshift-region>
...
peristentVolumeclaimPolicy: Delete
storageClassName: <zoned-storage-class-name> 3
volumeMode: Filesystem
...

1 2
Le PV a des clés zonées.
3
PV utilise la classe de stockage zonée.

5.19.8. Ressources supplémentaires

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.

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 leBlog 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.

© 2024 Red Hat, Inc.