5.5. Gestionnaire de pilotes GCP PD CSI


5.5.1. Aperçu général

Le logiciel OpenShift Dedicated peut fournir des volumes persistants (PV) à l’aide du pilote CSI (Container Storage Interface) pour le stockage persistant sur disque (PD) de Google Cloud Platform (GCP).

La familiarité avec le stockage persistant et la configuration des volumes CSI est recommandée lorsque vous travaillez avec un opérateur et un pilote d’interface de stockage de conteneurs (CSI).

Afin de créer des volumes persistants (PV) fournis par CSI qui s’adaptent aux ressources de stockage GCP PD, OpenShift Dedicated installe par défaut l’opérateur de pilotes GCP PD CSI et le pilote GCP PD CSI dans l’espace de noms openshift-cluster-csi-drivers.

  • GCP PD CSI Driver Operator: Par défaut, l’opérateur fournit une classe de stockage que vous pouvez utiliser pour créer des PVC. Le cas échéant, vous pouvez désactiver cette classe de stockage par défaut (voir Gestion de la classe de stockage par défaut). Il est également possible de créer la classe de stockage GCP PD décrite dans Stockage persistant à l’aide de GCE Persistent Disk.
  • Pilote PD GCP: Le pilote vous permet de créer et de monter des PV GCP PD.

    Le pilote GCP PD CSI prend en charge le type d’instance C3 pour les séries de machines en métal nu et N4. Le type d’instance C3 et la série de machines N4 prennent en charge les disques hyperdisques.

5.5.2.1. Limites de type d’instance C3 et N4

Le support du pilote GCP PD CSI pour le type d’instance C3 pour les séries de machines en métal nu et N4 présente les limites suivantes:

  • Les volumes de clonage ne sont pas pris en charge lors de l’utilisation de pools de stockage.
  • En cas de clonage ou de redimensionnement, la taille du volume d’origine des disques hyperdisques doit être de 6Gi ou plus.
  • La classe de stockage par défaut est standard-csi.

    Important

    Il faut créer manuellement une classe de stockage.

    En ce qui concerne la création de la classe de stockage, consultez l’étape 2 de la section Configuration des disques hyperdisques.

  • Les clusters avec machines virtuelles mixtes (VM) qui utilisent différents types de stockage, par exemple N2 et N4, ne sont pas pris en charge. Cela est dû au fait que les disques hyperdisques ne sont pas utilisables sur la plupart des machines virtuelles héritées. De même, les disques persistants réguliers ne sont pas utilisables sur les machines virtuelles N4/C3.
  • Le cluster GCP avec des nœuds c3-standard-2, c3-standard-4, n4-standard-2 et n4-standard-4 peut dépasser à tort le nombre maximum de disque fixe, ce qui devrait être 16 (lien JIRA).

Les pools de stockage Hyperdisk peuvent être utilisés avec Compute Engine pour le stockage à grande échelle. Le pool de stockage hyperdisque est une collection achetée de capacité, de débit et d’IOPS, que vous pouvez ensuite prévoir pour vos applications au besoin. Il est possible d’utiliser des pools de stockage hyperdisque pour créer et gérer des disques dans des pools et utiliser les disques sur plusieurs charges de travail. En gérant les disques en agrégat, vous pouvez économiser des coûts tout en réalisant une croissance de la capacité et des performances attendues. En utilisant uniquement le stockage dont vous avez besoin dans les pools de stockage hyperdisque, vous réduisez la complexité de la capacité de prévision et réduisez la gestion en passant de la gestion de centaines de disques à la gestion d’un seul pool de stockage.

Afin de configurer des pools de stockage, consultez Configuration des disques hyperdisque.

5.5.2.3. Configuration de disques hyperdisk-équilibrés

Conditions préalables

  • Accès au cluster avec privilèges administratifs

Procédure

Configurer des disques hyperdisk-équilibrés:

  1. Créez une revendication de volume persistante (PVC) qui utilise la classe de stockage hyperdisque spécifique à l’aide de l’exemple de fichier YAML suivant:

    Exemple de fichier PVC YAML

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-pvc
    spec:
      storageClassName: hyperdisk-sc 
    1
    
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 2048Gi 
    2
    Copy to Clipboard Toggle word wrap

    1
    Le PVC fait référence à la classe de stockage spécifique à la piscine de stockage. Dans cet exemple, hyperdisk-sc.
    2
    Capacité de stockage cible du volume hyperdisque équilibré. Dans cet exemple, 2048Gi.
  2. Créez un déploiement qui utilise le PVC que vous venez de créer. L’utilisation d’un déploiement permet de s’assurer que votre application a accès au stockage persistant même après le redémarrage et le rééchelonnement du pod:

    1. Assurez-vous qu’un pool de nœuds avec la série de machines spécifiée est opérationnel avant de créer le déploiement. Dans le cas contraire, la gousse ne parvient pas à planifier.
    2. À l’aide de l’exemple suivant fichier YAML pour créer le déploiement:

      Exemple de déploiement du fichier YAML

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: postgres
      spec:
        selector:
          matchLabels:
            app: postgres
        template:
          metadata:
            labels:
              app: postgres
          spec:
            nodeSelector:
              cloud.google.com/machine-family: n4 
      1
      
            containers:
            - name: postgres
              image: postgres:14-alpine
              args: [ "sleep", "3600" ]
              volumeMounts:
              - name: sdk-volume
                mountPath: /usr/share/data/
            volumes:
            - name: sdk-volume
              persistentVolumeClaim:
                claimName: my-pvc 
      2
      Copy to Clipboard Toggle word wrap

      1
      Indique la famille de machines. Dans cet exemple, c’est n4.
      2
      Indique le nom du PVC créé à l’étape précédente. Dans cet exemple, c’est mon-pfc.
    3. Confirmez que le déploiement a été créé avec succès en exécutant la commande suivante:

      $ oc get deployment
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      NAME       READY   UP-TO-DATE   AVAILABLE   AGE
      postgres   0/1     1            0           42s
      Copy to Clipboard Toggle word wrap

      Il peut prendre quelques minutes pour que les instances d’hyperdisque complètent le provisionnement et affichent un statut READY.

    4. Confirmez que le PVC my-pvc a été lié avec succès à un volume persistant (PV) en exécutant la commande suivante:

      $ oc get pvc my-pvc
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      NAME          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS       VOLUMEATTRIBUTESCLASS  AGE
      my-pvc        Bound    pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6   2Ti        RWO            hyperdisk-sc       <unset>                2m24s
      Copy to Clipboard Toggle word wrap

    5. Confirmez la configuration attendue de votre disque hyperdisque:

      $ gcloud compute disks list
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      NAME                                        LOCATION        LOCATION_SCOPE  SIZE_GB  TYPE                STATUS
      instance-20240914-173145-boot               us-central1-a   zone            150      pd-standard         READY
      instance-20240914-173145-data-workspace     us-central1-a   zone            100      pd-balanced         READY
      c4a-rhel-vm                                 us-central1-a   zone            50       hyperdisk-balanced  READY 
      1
      Copy to Clipboard Toggle word wrap

      1
      Disque hyperdisk-équilibré.
    6. En utilisant des pools de stockage, vérifiez que le volume est fourni comme spécifié dans votre classe de stockage et PVC en exécutant la commande suivante:

      $ gcloud compute storage-pools list-disks pool-us-east4-c --zone=us-east4-c
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      NAME                                      STATUS  PROVISIONED_IOPS  PROVISIONED_THROUGHPUT  SIZE_GB
      pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6  READY   3000              140                     2048
      Copy to Clipboard Toggle word wrap

5.5.3. À propos de CSI

Les fournisseurs de stockage ont traditionnellement fourni des pilotes de stockage dans le cadre de Kubernetes. Avec l’implémentation de l’interface de stockage de conteneurs (CSI), les fournisseurs tiers peuvent fournir des plugins de stockage à l’aide d’une interface standard sans jamais avoir à modifier le code Kubernetes de base.

Les opérateurs CSI offrent aux utilisateurs d’OpenShift des options de stockage, telles que des instantanés de volume, qui ne sont pas possibles avec les plugins de volume dans l’arbre.

5.5.4. GCP PD CSI paramètres de classe de stockage de pilotes

Le pilote Google Cloud Platform (GCP) Container Storage Interface (PD) de disque persistant (CSI) utilise le sidecar externe CSI comme contrôleur. Il s’agit d’un conteneur d’assistance séparé qui est déployé avec le pilote CSI. Le sidecar gère les volumes persistants (PV) en déclenchant l’opération CreateVolume.

Le pilote GCP PD CSI utilise la clé de paramètre csi.storage.k8s.io/fstype pour prendre en charge le provisionnement dynamique. Le tableau suivant décrit tous les paramètres de la classe de stockage CSI PCP PD qui sont pris en charge par OpenShift Dedicated.

Expand
Tableau 5.2. Créer des paramètres de volume
Le paramètreLes valeursDéfaut par défautDescription

le type

B) PD-sd, pd-standard ou pd-équilibré

la norme PD-standard

Il vous permet de choisir entre les PV standard ou les PV à l’état solide.

Le pilote ne valide pas la valeur, ainsi toutes les valeurs possibles sont acceptées.

le type de réplication

aucun ou régional-pd

aucune.

Il vous permet de choisir entre les PV zonaux ou régionaux.

disque-encryption-kms-key

Identifiant de ressource entièrement qualifié pour la clé à utiliser pour chiffrer de nouveaux disques.

Chaîne vide

Il utilise des clés de chiffrement gérées par le client (CMEK) pour chiffrer de nouveaux disques.

5.5.5. Création d’un volume persistant crypté sur mesure

Lorsque vous créez un objet PersistentVolumeClaim, OpenShift Dédie un nouveau volume persistant (PV) et crée un objet PersistentVolume. Il est possible d’ajouter une clé de chiffrement personnalisée dans Google Cloud Platform (GCP) pour protéger un PV dans votre cluster en cryptant le PV nouvellement créé.

En ce qui concerne le chiffrement, le PV nouvellement connecté que vous créez utilise des clés de chiffrement gérées par le client (CMEK) sur un cluster à l’aide d’une clé de gestion de clés Google Cloud (KMS) nouvelle ou existante.

Conditions préalables

  • Connectez-vous à un cluster dédié OpenShift en cours d’exécution.
  • C’est vous qui avez créé un porte-clés Cloud KMS et une version clé.

En savoir plus sur les ressources CMEK et Cloud KMS, voir Utiliser les clés de chiffrement gérées par le client (CMEK).

Procédure

Afin de créer un PV crypté sur mesure, complétez les étapes suivantes:

  1. Créez une classe de stockage avec la clé Cloud KMS. L’exemple suivant permet un provisionnement dynamique des volumes cryptés:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: csi-gce-pd-cmek
    provisioner: pd.csi.storage.gke.io
    volumeBindingMode: "WaitForFirstConsumer"
    allowVolumeExpansion: true
    parameters:
      type: pd-standard
      disk-encryption-kms-key: projects/<key-project-id>/locations/<location>/keyRings/<key-ring>/cryptoKeys/<key> 
    1
    Copy to Clipboard Toggle word wrap
    1
    Ce champ doit être l’identifiant de ressource pour la clé qui sera utilisée pour chiffrer de nouveaux disques. Les valeurs sont sensibles à la casse. En savoir plus sur la fourniture de valeurs clés d’identification, consultez Retrieving Id d’une ressource et Getting a Cloud KMS ID.
    Note

    Il est impossible d’ajouter le paramètre disque-encryption-kms-key à une classe de stockage existante. Cependant, vous pouvez supprimer la classe de stockage et la recréer avec le même nom et un ensemble différent de paramètres. Dans ce cas, le provisionneur de la classe existante doit être pd.csi.storage.gke.io.

  2. Déployez la classe de stockage sur votre cluster dédié OpenShift à l’aide de la commande oc:

    $ oc describe storageclass csi-gce-pd-cmek
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Name:                  csi-gce-pd-cmek
    IsDefaultClass:        No
    Annotations:           None
    Provisioner:           pd.csi.storage.gke.io
    Parameters:            disk-encryption-kms-key=projects/key-project-id/locations/location/keyRings/ring-name/cryptoKeys/key-name,type=pd-standard
    AllowVolumeExpansion:  true
    MountOptions:          none
    ReclaimPolicy:         Delete
    VolumeBindingMode:     WaitForFirstConsumer
    Events:                none
    Copy to Clipboard Toggle word wrap

  3. Créez un fichier nommé pvc.yaml qui correspond au nom de l’objet de votre classe de stockage que vous avez créé à l’étape précédente:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: podpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: csi-gce-pd-cmek
      resources:
        requests:
          storage: 6Gi
    Copy to Clipboard Toggle word wrap
    Note

    Lorsque vous avez marqué la nouvelle classe de stockage par défaut, vous pouvez omettre le champ StorageClassName.

  4. Appliquez le PVC sur votre cluster:

    $ oc apply -f pvc.yaml
    Copy to Clipboard Toggle word wrap
  5. Bénéficiez de l’état de votre PVC et vérifiez qu’il est créé et lié à un PV nouvellement fourni:

    $ oc get pvc
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME      STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
    podpvc    Bound     pvc-e36abf50-84f3-11e8-8538-42010a800002   10Gi       RWO            csi-gce-pd-cmek  9s
    Copy to Clipboard Toggle word wrap

    Note

    Lorsque votre classe de stockage a le champ VolumeBindingMode sur WaitForFirstConsumer, vous devez créer un pod pour utiliser le PVC avant de pouvoir le vérifier.

Le PV protégé par CMEK est maintenant prêt à être utilisé avec votre cluster OpenShift Dedicated.

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