5.5. Gestionnaire de pilotes GCP PD CSI
5.5.1. Aperçu général Copier lienLien copié sur presse-papiers!
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. C3 type d’instance pour la série de machines en métal nu et N4 Copier lienLien copié sur presse-papiers!
5.5.2.1. Limites de type d’instance C3 et N4 Copier lienLien copié sur presse-papiers!
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.
ImportantIl 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).
5.5.2.2. Aperçu des pools de stockage pour disques hyperdisques Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
Conditions préalables
- Accès au cluster avec privilèges administratifs
Procédure
Configurer des disques hyperdisk-équilibrés:
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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:
- 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.
À l’aide de l’exemple suivant fichier YAML pour créer le déploiement:
Exemple de déploiement du fichier YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Confirmez que le déploiement a été créé avec succès en exécutant la commande suivante:
oc get deployment
$ oc get deployment
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY UP-TO-DATE AVAILABLE AGE postgres 0/1 1 0 42s
NAME READY UP-TO-DATE AVAILABLE AGE postgres 0/1 1 0 42s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il peut prendre quelques minutes pour que les instances d’hyperdisque complètent le provisionnement et affichent un statut READY.
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
$ oc get pvc my-pvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 Copied! Toggle word wrap Toggle overflow Confirmez la configuration attendue de votre disque hyperdisque:
gcloud compute disks list
$ gcloud compute disks list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 Copied! Toggle word wrap Toggle overflow - 1
- Disque hyperdisk-équilibré.
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
$ gcloud compute storage-pools list-disks pool-us-east4-c --zone=us-east4-c
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME STATUS PROVISIONED_IOPS PROVISIONED_THROUGHPUT SIZE_GB pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6 READY 3000 140 2048
NAME STATUS PROVISIONED_IOPS PROVISIONED_THROUGHPUT SIZE_GB pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6 READY 3000 140 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.3. À propos de CSI Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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.
Le paramètre | Les valeurs | Défaut par défaut | Description |
---|---|---|---|
| B) PD-sd, pd-standard ou pd-équilibré |
| 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. |
| aucun ou régional-pd |
| Il vous permet de choisir entre les PV zonaux ou régionaux. |
| 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 Copier lienLien copié sur presse-papiers!
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:
Créez une classe de stockage avec la clé Cloud KMS. L’exemple suivant permet un provisionnement dynamique des volumes cryptés:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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.
NoteIl 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.
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
$ oc describe storageclass csi-gce-pd-cmek
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLorsque vous avez marqué la nouvelle classe de stockage par défaut, vous pouvez omettre le champ StorageClassName.
Appliquez le PVC sur votre cluster:
oc apply -f pvc.yaml
$ oc apply -f pvc.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ oc get pvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 Copied! Toggle word wrap Toggle overflow NoteLorsque 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.