Pilote VMware Block Container Storage Interface (CSI)
Le pilote VMware Container Storage Interface (CSI) vous permet de gérer le cycle de vie de vos volumes VMware Block Data.
Prérequis
Avant de pouvoir créer une configuration de stockage par blocs VMware, vous devez respecter les prérequis suivants.
- Vérifiez que vous exécutez vSphere version 6.7U3 ou ultérieure.
- Vérifiez que la version matérielle de votre machine virtuelle est la version 15 ou une version ultérieure.
- Vérifiez que les noeuds maître peuvent communiquer avec l'interface de gestion vCenter.
- Désactivez la permutation sur tous les noeuds.
- Activez l'identificateur unique universel de disque sur toutes les machines virtuelles de noeud.
- Déployez vSAN dans votre environnement vSphere. Pour plus d’informations, consultez la documentation d’ vSAN.
Avant de pouvoir déployer des modèles de stockage dans les clusters de votre site, assurez-vous d'avoir configuré Satellite Config en sélectionnant l'option Enable cluster admin access for Satellite Config dans la console ou
en incluant l'option --enable-config-admin lorsque vous créez votre cluster.
Vous ne pouvez pas étendre le service de stockage Satellite aux groupes de ressources. Toutefois, si vous attribuez des groupes de ressources à d'autres ressources telles que l'emplacement et le cluster, vous devez ajouter le lecteur Satellite et le rôle d'administrateur de liens pour toutes les ressources du compte.
Création et affectation d'une configuration dans la console
-
Dans la console Emplacements, sélectionnez l'emplacement où vous souhaitez créer une configuration de stockage.
-
Sélectionnez Stockage > Créer une configuration de stockage
-
Entrez un nom pour votre configuration.
-
Sélectionnez le type de stockage.
-
Sélectionnez la version, puis cliquez sur Suivant
-
Si le Type de stockage que vous avez sélectionné accepte des paramètres personnalisés, entrez-les dans l'onglet Paramètres.
-
Si le Type de stockage que vous avez sélectionné requiert des secrets, entrez-les dans l'onglet Secrets.
-
Dans l'onglet Classes de stockage, consultez les classes de stockage déployées par la configuration ou créez une classe de stockage personnalisée.
-
Dans l'onglet Affecter au service, sélectionnez le service auquel vous souhaitez affecter votre configuration.
-
Cliquez sur Terminé pour affecter votre configuration de stockage.
Création d'une configuration dans l'interface de ligne de commande
-
Passez en revue la référence de paramètre pour la version de modèle que vous souhaitez utiliser.
-
Connectez-vous à l'interface de ligne de commande IBM Cloud.
ibmcloud login -
Répertoriez vos emplacements Satellite et notez la colonne
Managed from.ibmcloud sat location ls -
Ciblez la région
Managed fromde votre emplacement Satellite. Par exemple, pourwdc, ciblezus-east. Pour plus d'informations, voir Régions Satellite.ibmcloud target -r us-east -
Si vous utilisez un groupe de ressources autre que
default, ciblez-le.ibmcloud target -g RESOURCE_GROUP -
Copiez l'un des exemples de commande suivants pour la version de modèle que vous souhaitez utiliser. Pour plus d'informations sur la commande, voir
ibmcloud sat storage config createdans la référence de commande.Exemple de commande permettant de créer une configuration de version 2.7.0.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name vsphere-csi-driver --template-version 2.7.0 --param "vcenter-username=VCENTER-USERNAME" --param "vcenter-password=VCENTER-PASSWORD" --param "insecure-flag=INSECURE-FLAG" --param "host=HOST" --param "datacenters=DATACENTERS" --param "thumbprint=THUMBPRINT" -
Personnalisez la commande en fonction des paramètres que vous souhaitez utiliser.
-
Exécutez la commande pour créer une configuration.
-
Vérifiez que votre configuration a bien été créée.
ibmcloud sat storage config get --config CONFIG
Création d'une configuration dans l'API
-
Générez une clé d'API, puis demandez un jeton d'actualisation. Pour plus d'informations, voir Génération d'un jeton IAM IBM Cloud à l'aide d'une clé d'API.
-
Passez en revue la référence de paramètre pour la version de modèle que vous souhaitez utiliser.
-
Copiez l'un des exemples de demande suivants et remplacez les variables que vous souhaitez utiliser.
Exemple de demande de création d'une configuration de version 2.7.0.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"vsphere-csi-driver\", \"storage-template-version\": \"2.7.0\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"INSECURE-FLAG\", { \"entry.name\": \"HOST\", { \"entry.name\": \"DATACENTERS\",\"user-secret-parameters\": { \"entry.name\": \"VCENTER-USERNAME\",{ \"entry.name\": \"VCENTER-PASSWORD\",{ \"entry.name\": \"THUMBPRINT\",}
Création d'une tâche dans l'interface de ligne de commande (CLI)
-
Répertoriez vos configurations de stockage et notez celle que vous souhaitez attribuer à vos clusters.
ibmcloud sat storage config ls -
Récupérez l'ID du cluster, du groupe de clusters ou du service auquel vous souhaitez attribuer un espace de stockage.
Pour vous assurer que votre cluster est enregistré dans Satellite Config ou pour créer des groupes, reportez-vous à la rubrique Configuration des clusters à utiliser avec Satellite Config.
Exemple de commande permettant de répertorier les groupes de clusters.
ibmcloud sat group lsExemple de commande permettant de répertorier les clusters.
ibmcloud oc cluster ls --provider satelliteExemple de commande permettant de répertorier les services Satellite.
ibmcloud sat service ls --location LOCATION -
Affectez votre configuration de stockage au cluster, au groupe ou au service que vous avez extrait précédemment. Pour plus d'informations, consultez la commande
ibmcloud sat storage assignment create.Exemple de commande permettant d'affecter une configuration à un groupe de clusters.
ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAMEExemple de commande permettant d'affecter une configuration à un cluster.
ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAMEExemple de commande permettant d'affecter une configuration à un cluster de services.
ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME -
Vérifiez que votre affectation a été créée.
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
Création d'une affectation de stockage dans l'API
-
Copiez l'un des exemples de demande suivants.
Exemple de demande d'affectation d'une configuration à un cluster.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"Exemple de demande d' affectation de la configuration à un groupe de clusters.
curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}" -
Remplacez les variables par vos détails et exécutez la demande.
-
Vérifiez que l'affectation a été créée en répertoriant vos affectations.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Mise à jour des affectations de stockage dans la console
Vous pouvez utiliser la consoleSatellite pour appliquer les dernières mises à jour de correctif à vos affectations.
-
Dans la page Emplacements de la console Satellite, sélectionnez votre emplacement.
-
Cliquez sur l'onglet Stockage pour afficher vos configurations.
-
Cliquez sur la configuration que vous souhaitez mettre à jour.
-
Cliquez sur l'icône Informations (i) pour appliquer la dernière révision ou le dernier correctif.
-
Facultatif: activez les mises à jour de correctif automatiques pour votre affectation de stockage. L'activation des mises à jour de correctifs automatiques garantit que votre affectation dispose toujours des derniers correctifs de sécurité.
Si vous activez les mises à jour de correctifs automatiques, vous devez toujours appliquer les mises à jour majeures manuellement.
Mise à niveau manuelle des affectations dans l'interface de ligne de commande
Mettez à niveau une affectation pour utiliser la dernière révision de modèle de stockage.
-
Répertoriez vos affectations de stockage Satellite, notez l'affectation Satellite que vous souhaitez mettre à niveau.
ibmcloud sat storage assignment ls -
Répertoriez les modèles de stockage Satellite pour afficher les dernières versions disponibles.
ibmcloud sat storage template ls -
Mettez à niveau l'affectation Satellite.
Exemple de commande permettant de mettre à niveau une affectation.
ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
Activation des mises à jour de correctifs automatiques pour les configurations et les affectations dans l'interface de ligne de commande
Vous pouvez utiliser l'interface de ligne de commande sat storage assignment autopatch enable pour activer les mises à jour de correctif automatiques pour vos affectations. L'activation des mises à jour de correctif automatiques
applique automatiquement les dernières révisions de modèle de stockage (correctifs). Vous devez toujours appliquer les mises à jour majeures manuellement.
-
Permet d'afficher la liste des configurations de stockage Satellite. Notez l'ID de configuration.
ibmcloud sat storage assignment ls -
Exécutez l'un des exemples de commande suivants pour activer les mises à jour de correctifs automatiques pour votre configuration et les affectations qui lui sont associées. Saisissez l'ID de configuration que vous avez récupéré à l'étape précédente.
Exemple de commande permettant d'activer les mises à jour de correctif automatiques pour une affectation.
ibmcloud sat storage assignment autopatch enable --config CONFIG (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])Exemple de commande permettant d'activer les mises à jour de correctifs automatiques pour toutes les affectations de stockage dans une configuration donnée.
ibmcloud sat storage assignment autopatch enable --config CONFIG --allExemple de commande permettant de désactiver les mises à jour de correctifs automatiques pour toutes les affectations sous une configuration spécifique.
ibmcloud sat storage assignment autopatch disable --config CONFIG --allExemple de commande permettant de désactiver les mises à jour de correctifs automatiques pour une affectation unique et une configuration spécifique.
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-IDExemple de commande permettant de désactiver les mises à jour de correctifs automatiques pour une affectation multiple et une configuration spécifique.
ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
Mise à niveau d'une configuration et d'affectations dans l'API
Vous pouvez utiliser l'API /v2/storage/satellite/updateAssignment pour mettre à jour vos affectations avec de nouveaux clusters
ou groupes de clusters. Définissez updateConfigVersion sur true pour appliquer la mise à jour de la révision.
-
Copiez l'exemple de demande suivant et remplacez les variables pour les groupes de clusters et les affectations que vous souhaitez mettre à jour.
curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}" -
Exécutez la demande.
-
Obtenez les détails de votre affectation pour vérifier la mise à jour.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Activation des mises à jour de correctif automatiques pour les affectations dans l'API
Vous pouvez utiliser l'API /v2/storage/satellite/setAssignmentAutoupgrade pour activer les mises à jour de correctif automatiques pour vos affectations. L'activation des mises à jour de correctif automatiques applique automatiquement
les dernières révisions de modèle de stockage (correctifs). Vous devez toujours appliquer les mises à jour majeures manuellement.
-
Copiez l'exemple de demande suivant et remplacez les variables pour les groupes de clusters et les affectations que vous souhaitez mettre à jour.
curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } } -
Exécutez la demande.
-
Obtenez les détails de votre affectation pour vérifier la mise à niveau.
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Déploiement d'une application utilisant l' VMware
Vous pouvez utiliser vmware-csi-driver pour créer des PVC que vous pouvez utiliser dans vos charges de travail de cluster.
-
Créez un PVC faisant référence à la classe de stockage que vous avez créée précédemment.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: podpvc spec: accessModes: - ReadWriteOnce storageClassName: sat-vsphere-vsan-block-metro resources: requests: storage: 10Gi -
Créez la PVC dans votre cluster.
oc apply -f podpvc.yaml -
Créez un fichier de configuration YAML pour un pod qui monte la réservation de volume persistant que vous avez créée.
apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: #web-server image: nginx command: - "/bin/sh" - "-c" - while true; do echo $(date) >> /mnt/vmwaredisk/outfile; sleep 1; done volumeMounts: mountPath: /mnt/vmwaredisk name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: podpvc readOnly: false -
Créez le pod dans votre cluster.
oc apply -f mypvc.yaml -
Vérifiez que le pod est déployé. Notez que quelques minutes peuvent être nécessaires avant que votre application n'atteigne un état
Running.oc get podsNAME READY STATUS RESTARTS AGE my-pvc 1/1 Running 0 2m58s -
Vérifiez que l'application peut écrire dans votre volume de stockage de bloc en vous connectant à votre pod.
oc exec -it web-server /bin/bash -
Affichez le contenu du fichier
outfilepour vérifier que votre application peut écrire des données dans votre stockage persistant.cat outfileExemple de sortie
Fri Jul 16 07:49:39 EDT 2021 Fri Jul 16 07:49:39 EDT 2021 Fri Jul 16 07:49:39 EDT 2021 -
Quittez le pod.
exit
Suppression du stockage VMware de vos applications
Si vous n'avez plus besoin de votre configuration VMware, vous pouvez supprimer vos applications, vos PVC, vos PV et vos affectations de vos clusters.
-
Répertoriez vos réservations de volume persistant et notez le nom de celle à supprimer.
oc get pvc -
Supprimez les pods qui montent la PVC.
- Répertoriez tous les pods qui montent actuellement la réservation de volume persistant à supprimer. Si aucun pod n'est renvoyé, aucun pod n'utilise actuellement votre réservation de volume persistant.
oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>" ``` Exemple de sortie ```sh {: screen} NAME READY STATUS RESTARTS AGE web-server 1/1 Running 0 55s ``` 1. Supprimez le pod utilisant la PVC. Si le pod fait partie d'un déploiement ou d'un état, supprimez le déploiement ou l'état. ```sh {: pre} oc delete pod <pod_name> ``` ```sh {: pre} oc delete deployment <deployment_name> ``` ```sh {: pre} oc delete statefulset <statefulset_name> ``` 1. Vérifiez que le pod, le déploiement ou l'état est supprimé. ```sh {: pre} oc get pods ``` ```sh {: pre} oc get deployments ``` ```sh {: pre} oc get statefulset ``` -
Supprimez la réservation de volume persistant.
oc delete pvc <pvc_name> -
Vérifiez que votre volume persistant est supprimé automatiquement.
oc get pv
Suppression de la configuration de stockage VMware de votre cluster
Si vous ne prévoyez plus d'utiliser VMware dans votre cluster, vous pouvez utiliser l'interface de ligne de commande (CLI) pour dissocier votre cluster de la configuration de stockage.
La suppression de la configuration de stockage entraîne la suppression du pilote de tous les clusters auxquels il est affecté. Vos réservations de volume persistant, vos volumes persistants et vos données ne sont pas supprimés. Cependant, vous ne pourrez pas accéder à vos données tant que vous n'aurez pas réinstallé le pilote dans votre cluster.
Suppression de la configuration de stockage VMware à l'aide de la console
- Dans le tableau de bord de stockage Satellite; sélectionnez la configuration de stockage à supprimer.
- Sélectionnez Actions > Supprimer
- Entrez le nom de votre configuration de stockage.
- Sélectionnez Supprimer.
Suppression de la configuration de stockage VMWare à l'aide de la ligne de commande
-
Répertoriez vos affectations de stockage et recherchez celle que vous avez utilisée pour votre cluster.
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER) -
Supprimez l'affectation. Une fois que l'affectation a été supprimée, les pods du pilote et les classes de stockage sont supprimés de tous les clusters qui faisaient partie de l'affectation de stockage.
ibmcloud sat storage assignment rm --assignment <assignment_ID> -
Vérifiez que le pilote a été supprimé de votre cluster.
- Répertoriez les classes de stockage de votre cluster et vérifiez que les classes de stockage ont été supprimées.
oc get sc ``` 2. Répertoriez les pods de l'espace de noms `kube-system` et vérifiez que les pods du pilote de stockage ont été supprimés. ```sh {: pre} oc get pods -n kube-system | grep vsphere ``` -
Facultatif : supprimez la configuration de stockage.
- Répertoriez les configurations de stockage.
ibmcloud sat storage config ls ``` 2. Supprimez la configuration de stockage. ```sh {: pre} ibmcloud sat storage config rm --config <config_name> ```
Référence de paramètre
Référence du paramètre 2.7.0
| Nom d'affichage | Option CLI | Type | Description | Valeur par défaut |
|---|---|---|---|---|
| Nom d'utilisateur vCenter | vcenter-username |
Secret | Nom d'utilisateur vCenter. Vous devez spécifier le nom d'utilisateur avec le nom de domaine. Exemple : 'Administrator@vsphere.local'. | N/A |
| Mot de passe vCenter | vcenter-password |
Secret | Mot de passe utilisateur du serveur vCenter. | N/A |
| Connexion non sécurisée | insecure-flag |
Config | Inclure le 'insecure-flag'. true" indique que vous voulez inclure le drapeau, qui utilise un certificat auto-signé pour la connexion. 'false' indique que vous utilisez une connexion sécurisée. Si vous sélectionnez 'false', vous devez fournir une empreinte SSL. | false |
| Hôte vCenter | host |
Config | Adresse IP du serveur vCenter. | N/A |
| Centres de données vCenter | datacenters |
Config | Répertoriez tous les chemins de centre de données dans lesquels sont présentes les machines virtuelles hôte, en les séparant par des virgules. Indiquez le nom du centre de données lorsqu'il se trouve à la racine. Lorsqu'il est placé dans le dossier, vous devez spécifier le chemin sous forme de folder/data-center-name | N/A |
| Empreinte de certificat SSL | thumbprint |
Secret | Empreinte SSL à utiliser pour établir une connexion sécurisée à VC. | N/A |
Obtenir de l'aide et une assistance pour VMware
Si vous rencontrez un problème avec VMware, soumettez une demande de support auprès du supportVMware.