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.

  1. Vérifiez que vous exécutez vSphere version 6.7U3 ou ultérieure.
  2. Vérifiez que la version matérielle de votre machine virtuelle est la version 15 ou une version ultérieure.
  3. Vérifiez que les noeuds maître peuvent communiquer avec l'interface de gestion vCenter.
  4. Désactivez la permutation sur tous les noeuds.
  5. Activez l'identificateur unique universel de disque sur toutes les machines virtuelles de noeud.
  6. 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

  1. Reportez-vous aux informations de référence des paramètres.

  2. Dans la console Emplacements, sélectionnez l'emplacement où vous souhaitez créer une configuration de stockage.

  3. Sélectionnez Stockage > Créer une configuration de stockage

  4. Entrez un nom pour votre configuration.

  5. Sélectionnez le type de stockage.

  6. Sélectionnez la version, puis cliquez sur Suivant

  7. Si le Type de stockage que vous avez sélectionné accepte des paramètres personnalisés, entrez-les dans l'onglet Paramètres.

  8. Si le Type de stockage que vous avez sélectionné requiert des secrets, entrez-les dans l'onglet Secrets.

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

  10. Dans l'onglet Affecter au service, sélectionnez le service auquel vous souhaitez affecter votre configuration.

  11. Cliquez sur Terminé pour affecter votre configuration de stockage.

Création d'une configuration dans l'interface de ligne de commande

  1. Passez en revue la référence de paramètre pour la version de modèle que vous souhaitez utiliser.

  2. Connectez-vous à l'interface de ligne de commande IBM Cloud.

    ibmcloud login
    
  3. Répertoriez vos emplacements Satellite et notez la colonne Managed from.

    ibmcloud sat location ls
    
  4. Ciblez la région Managed from de votre emplacement Satellite. Par exemple, pour wdc, ciblez us-east. Pour plus d'informations, voir Régions Satellite.

    ibmcloud target -r us-east
    
  5. Si vous utilisez un groupe de ressources autre que default, ciblez-le.

    ibmcloud target -g RESOURCE_GROUP
    
  6. 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 create dans 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"
    
  7. Personnalisez la commande en fonction des paramètres que vous souhaitez utiliser.

  8. Exécutez la commande pour créer une configuration.

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

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

  2. Passez en revue la référence de paramètre pour la version de modèle que vous souhaitez utiliser.

  3. 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)

  1. Répertoriez vos configurations de stockage et notez celle que vous souhaitez attribuer à vos clusters.

    ibmcloud sat storage config ls
    
  2. 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 ls
    

    Exemple de commande permettant de répertorier les clusters.

    ibmcloud oc cluster ls --provider satellite
    

    Exemple de commande permettant de répertorier les services Satellite.

    ibmcloud sat service ls --location LOCATION
    
  3. 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 commandeibmcloud 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 NAME
    

    Exemple de commande permettant d'affecter une configuration à un cluster.

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    Exemple de commande permettant d'affecter une configuration à un cluster de services.

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. 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

  1. 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\"}"
    
  2. Remplacez les variables par vos détails et exécutez la demande.

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

  1. Dans la page Emplacements de la console Satellite, sélectionnez votre emplacement.

  2. Cliquez sur l'onglet Stockage pour afficher vos configurations.

  3. Cliquez sur la configuration que vous souhaitez mettre à jour.

  4. Cliquez sur l'icône Informations (i) pour appliquer la dernière révision ou le dernier correctif.

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

  1. Répertoriez vos affectations de stockage Satellite, notez l'affectation Satellite que vous souhaitez mettre à niveau.

    ibmcloud sat storage assignment ls
    
  2. Répertoriez les modèles de stockage Satellite pour afficher les dernières versions disponibles.

    ibmcloud sat storage template ls
    
  3. 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.

  1. Permet d'afficher la liste des configurations de stockage Satellite. Notez l'ID de configuration.

    ibmcloud sat storage assignment ls
    
  2. 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 --all
    

    Exemple 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 --all
    

    Exemple 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-ID
    

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

  1. 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\"}"
    
  2. Exécutez la demande.

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

  1. 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", ...], } }
    
  2. Exécutez la demande.

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

  1. 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
    
  2. Créez la PVC dans votre cluster.

    oc apply -f podpvc.yaml
    
  3. 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
    
  4. Créez le pod dans votre cluster.

    oc apply -f mypvc.yaml
    
  5. 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 pods
    
    NAME                                READY   STATUS    RESTARTS   AGE
    my-pvc                              1/1     Running   0          2m58s
    
  6. 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
    
  7. Affichez le contenu du fichier outfile pour vérifier que votre application peut écrire des données dans votre stockage persistant.

    cat outfile
    

    Exemple 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
    
  8. 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.

  1. Répertoriez vos réservations de volume persistant et notez le nom de celle à supprimer.

    oc get pvc
    
  2. Supprimez les pods qui montent la PVC.

    1. 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
        ```
    
  3. Supprimez la réservation de volume persistant.

    oc delete pvc <pvc_name>
    
  4. 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

  1. Dans le tableau de bord de stockage Satellite; sélectionnez la configuration de stockage à supprimer.
  2. Sélectionnez Actions > Supprimer
  3. Entrez le nom de votre configuration de stockage.
  4. Sélectionnez Supprimer.

Suppression de la configuration de stockage VMWare à l'aide de la ligne de commande

  1. 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)
    
  2. 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>
    
  3. Vérifiez que le pilote a été supprimé de votre cluster.

    1. 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
        ```
    
  4. Facultatif : supprimez la configuration de stockage.

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

Tableau 1. Référence des paramètres d' 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.