Configuration du pilote IBM Cloud Object Storage pour les clusters Satellite
Découvrez comment déployer le pilote IBM Cloud Object Storage sur vos clusters Satellite afin de créer et d’accéder à des données sur plusieurs fournisseurs de stockage cloud S3-compatible, notamment IBM, AWS, Wasabi et Azure.
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.
Prérequis
-
Créez un ensemble de données d'identification de service dans votre fournisseur de stockage d'objets.
Création d'un secret dans votre cluster qui contient vos données d'identification de stockage d'objets
Créez le secret Kubernetes dans votre cluster qui contient vos données d'identification de service.
-
Suivez les étapes basées sur votre fournisseur de stockage d'objets pour créer un secret dans votre cluster. Lorsque vous créez votre secret, toutes les valeurs sont automatiquement codées en base64. Dans l'exemple suivant, le nom du secret est
cos-write-access.-
IBM Cloud Object Storage
-
Recherchez l'ID de votre instance de service.
ibmcloud resource service-instance <service_name> | grep GUID -
Créez le secret dans votre cluster.
oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=api-key=API-KEY --from-literal=service-instance-id=SERVICE-INSTANCE-ID
-
-
AWS ou Wasabi
oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY-ID --from-literal=secret-key=SECRET-ACCESS-KEY ``` -
Création et affectation d'une configuration dans la console
-
Dans la console Locations, sélectionnez le site sur lequel 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.2.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-object-storage-plugin --template-version 2.2 --param "helm-release-name=HELM-RELEASE-NAME" --param "parameters=PARAMETERS" --param "license=LICENSE" --param "s3provider=S3PROVIDER" --param "cos-storageclass=COS-STORAGECLASS" --param "cos-endpoint=COS-ENDPOINT" -
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.2.
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\": \"ibm-object-storage-plugin\", \"storage-template-version\": \"2.2\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"HELM-RELEASE-NAME\", { \"entry.name\": \"PARAMETERS\", { \"entry.name\": \"LICENSE\", { \"entry.name\": \"S3PROVIDER\", { \"entry.name\": \"COS-STORAGECLASS\", { \"entry.name\": \"COS-ENDPOINT\",\"user-secret-parameters\": }
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' IBM Cloud Object Storage
Vous pouvez utiliser le pilote ibm-object-s3fs pour créer des PVC que vous pourrez utiliser dans les charges de travail de votre cluster.
-
Créez une réservation de volume persistant qui fait référence à votre configuration de stockage d'objets.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: demo #Enter a name for your PVC. namespace: default annotations: ibm.io/auto-create-bucket: "false" ibm.io/auto-delete-bucket: "false" ibm.io/bucket: BUCKET-NAME #Enter the name of your object storage bucket. ibm.io/secret-name: SECRET-NAME #Enter the name of the secret you created earlier. ibm.io/secret-namespace: NAMESPACE #Enter the namespace where you want to create the PVC. spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: ibmc-s3fs-cos #The storage class that you want to use. -
Créez la PVC dans votre cluster.
oc apply -f pvc-cos.yaml -
Créez un fichier de configuration YAML pour un pod qui monte le PVC que vous avez créé.
apiVersion: v1 kind: Pod metadata: name: demo-pod namespace: default spec: securityContext: runAsUser: 2000 fsGroup: 2000 volumes: - name: demo-vol persistentVolumeClaim: claimName: demo containers: - name: test image: nginxinc/nginx-unprivileged imagePullPolicy: Always volumeMounts: - name: demo-vol mountPath: /mnt/cosvol -
Créez le pod dans votre cluster.
oc apply -f demo-pod.yaml -
Vérifiez que le pod est déployé. Il peut s'écouler quelques minutes avant que votre application ne passe à l'état
Running.oc get podsNAME READY STATUS RESTARTS AGE demo-pod 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 demo-pod -- bash -c "touch /mnt/cosvol/test.txt && ls /mnt/cosvol" test.txt
Suppression de la configuration de stockage IBM Cloud Object Storage à 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 IBM Cloud Object Storage à l'aide de la ligne de commande
Si vous n'avez plus besoin de votre configuration IBM Cloud Object Storage, vous pouvez supprimer vos applications, vos PVC, vos PV et vos affectations de vos clusters.
-
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 ``` 1. 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 cos ``` -
Facultatif : supprimez la configuration de stockage.
- Répertoriez les configurations de stockage.
ibmcloud sat storage config ls ``` 1. 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.2
| Nom d'affichage | Option CLI | Type | Description | Valeur par défaut |
|---|---|---|---|---|
| Nom de l'édition | helm-release-name |
Config | Nom de l'édition de chart Helm. | ibm-object-storage-plugin |
| Paramètres supplémentaires de chart Helm | parameters |
Config | Paramètres supplémentaires de chart Helm. | N/A |
| Licence du plug-in Object Storage | license |
Config | Licence du plug-in Object Storage : licence Apache version 2.0. Affectez la valeur 'true' pour accepter la licence et installer le plug-in. | N/A |
| Fournisseur Object Storage | s3provider |
Config | Les fournisseurs disponibles sont 'IBM', 'AWS' et 'Wasabi'. Pour les fournisseurs autres que ceux-ci, vous devez fournir le paramètre 'Noeud final de service Object Storage'. | N/A |
| Région Object Storage | cos-storageclass |
Config | Entrez la région dans laquelle se trouve votre espace de stockage d'objets. Pour les régions IBM COS, voir https://ibm.biz/cos-endpoints-list. Pour Wasabi, voir https://ibm.biz/wasabi-endpoints. Pour AWS, voir https://ibm.biz/aws-endpoints. | N/A |
| Noeud final de service Object Storage | cos-endpoint |
Config | Noeud final de service Object Storage. Requis lors de l'utilisation de fournisseurs Object Storage autres que IBM, AWS ou Wasabi. La préférence est donnée au 'fournisseur Object Storage' lorsque les deux sont définis. | N/A |
Référence de classe de stockage pour IBM Cloud Object Storage
| Nom de la classe de stockage | Mode de liaison des volumes | Conserver |
|---|---|---|
ibm-s3fs-cos |
Immédiate | Faux |
ibm-s3fs-cos-perf |
Immédiate | Faux |
Aide et support pour IBM Cloud Object Storage
Lorsque vous utilisez IBM Cloud Object Storage, essayez les ressources suivantes avant d'ouvrir un dossier d'assistance.
- Consultez la foire aux questions dans la documentationBlock Storage for VPC.
- Consultez la documentation relative au traitement des incidents pour identifier et résoudre les problèmes courants.
- Vérifiez l'état de la plateforme et des ressources d' IBM Cloud en vous rendant sur la page Status.
- Consultez Stack Overflow pour voir si d'autres utilisateurs ont rencontré le même problème. Etiquetez les questions avec
ibm-cloudetCOS. - Si vous rencontrez un problème avec Block Storage for VPC, soumettez une demande de support auprès du supportIBM Cloud®.