ossfs 1.0 prend en charge le provisionnement dynamique, qui crée automatiquement un volume persistant (PV) et monte un OSS Bucket en s'appuyant sur une StorageClass et un PersistentVolumeClaim (PVC). Cette fonctionnalité supprime la configuration manuelle des PV, simplifie considérablement la gestion du stockage et convient parfaitement aux environnements multi-locataires ou aux scénarios nécessitant un provisionnement fréquent et à la demande du stockage.
Prérequis
Votre cluster et vos composants CSI (csi-plugin et csi-provisioner) doivent répondre aux exigences suivantes :
-
Pour l'authentification via RAM Roles for Service Accounts (RRSA) : votre cluster doit être en version 1.26 ou ultérieure, et la version du CSI doit être v1.30.4 ou ultérieure.
Si vous avez utilisé la fonctionnalité RRSA dans une version antérieure à v1.30.4, reportez-vous à [[Modification du produit] Mise à niveau de la version ossfs CSI et optimisation du processus de montage](t2763435.xdita#) pour ajouter la configuration d'autorisation de rôle RAM requise.
Pour l'authentification via AccessKey : afin de garantir la stabilité du montage, nous recommandons la version CSI v1.18.8.45 ou ultérieure.
Pour mettre à niveau votre cluster, consultez Mettre à niveau manuellement un cluster. Pour mettre à niveau les composants CSI, consultez Mettre à niveau les composants CSI.
À partir de la version CSI v1.30.4-*, le montage de volumes statiques OSS dépend du composant csi-provisioner .
Étape 1 : Choisir une méthode d'authentification
Pour garantir que votre cluster puisse accéder aux ressources OSS Bucket de manière sécurisée et conforme, configurez d'abord une méthode d'authentification.
Authentification RRSA : accorde dynamiquement aux Pods des rôles RAM temporaires et à rotation automatique, permettant une isolation granulaire des permissions au niveau applicatif. Cette méthode offre une sécurité renforcée.
Authentification AccessKey : stocke des clés statiques à long terme dans un Secret. Cette méthode est plus simple à configurer mais moins sécurisée.
Pour les clusters exécutant la version 1.26 ou ultérieure, nous recommandons l'authentification RRSA afin d'éviter les redémarrages des charges de travail et les remontages ossfs causés par la rotation des AccessKey.
Cet exemple suppose que le cluster et l'OSS Bucket se trouvent dans le même compte Alibaba Cloud. Pour monter un OSS Bucket appartenant à un autre compte, nous recommandons d'utiliser l'authentification RRSA.
RRSA
1. Activer RRSA pour votre cluster
Sur la page ACK Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Cluster Information.
-
Dans l'onglet Basic Information, sous la section Security and Auditing, cliquez sur Enabled à droite de RRSA OIDC. Suivez les instructions à l'écran pour activer RRSA pendant les heures creuses.
Lorsque l'état du cluster passe de Updating à Running, RRSA est activé.
ImportantAprès l'activation de RRSA, la durée de validité maximale des jetons ServiceAccount nouvellement créés dans le cluster est limitée à 12 heures.
2. Créer et autoriser un rôle RAM
Créez un rôle RAM que vos Pods pourront assumer pour accéder au volume de stockage OSS avec une authentification RRSA.
AccessKey
Créez un utilisateur RAM disposant des permissions nécessaires pour accéder à l'OSS Bucket cible, puis obtenez un AccessKey pour cet utilisateur.
-
Créez un utilisateur RAM. Vous pouvez ignorer cette étape si vous possédez déjà un utilisateur RAM.
Accédez à la page Create User sur la console RAM et suivez les instructions à l'écran pour créer un utilisateur RAM. Vous devez spécifier des paramètres tels que le nom de connexion et le mot de passe.
-
Créez une politique d'accès.
Cet exemple respecte le principe du moindre privilège. Créez une politique personnalisée pour accorder l'accès à l'OSS Bucket cible. Vous pouvez accorder des permissions en lecture seule ou en lecture/écriture.
-
Accédez à la page Create Policy sur la console RAM, basculez vers l'JSON Editor, puis configurez le script de politique.
Politique en lecture seule
Remplacez
<myBucketName>par le nom réel du bucket.{ "Statement": [ { "Action": [ "oss:Get*", "oss:List*" ], "Effect": "Allow", "Resource": [ "acs:oss:*:*:<myBucketName>", "acs:oss:*:*:<myBucketName>/*" ] } ], "Version": "1" }Politique de lecture/écriture OSS
Remplacez
<myBucketName>par le nom réel du bucket.{ "Statement": [ { "Action": "oss:*", "Effect": "Allow", "Resource": [ "acs:oss:*:*:<myBucketName>", "acs:oss:*:*:<myBucketName>/*" ] } ], "Version": "1" }Si vous souhaitez créer un PV via la console, vous avez également besoin de la permission
oss:ListBuckets.{ "Effect": "Allow", "Action": "oss:ListBuckets", "Resource": "*" } (Facultatif) Si vous utilisez un ID CMK spécifique géré par KMS pour chiffrer les objets OSS, vous devez également accorder les permissions KMS à l'utilisateur RAM. Pour plus d'informations, consultez Utiliser un ID CMK spécifique géré par KMS pour chiffrer les données.
-
-
Attachez la politique d'accès à l'utilisateur RAM.
Accédez à la page Users sur la console RAM, recherchez l'utilisateur créé, puis dans la colonne Actions, cliquez sur Add Permissions.
Dans la section Policies, recherchez et sélectionnez la politique d'accès que vous avez créée.
-
L'AccessKey créé sera stocké sous forme de Secret pour le PV.
Accédez à la page Users sur la console RAM, cliquez sur le nom de votre utilisateur RAM, puis dans la section AccessKey, cliquez sur Create AccessKey.
Suivez les instructions à l'écran pour créer un AccessKey. Copiez et stockez en lieu sûr l'AccessKey ID et l'AccessKey Secret.
Étape 2 : Créer une StorageClass
Créez une StorageClass pour définir un modèle de provisionnement des volumes persistants.
Méthode RRSA
-
Créez un fichier nommé
sc-oss.yaml.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: sc-oss parameters: # Replace with the name of your OSS bucket. bucket: bucket # The mount path relative to the bucket's root directory. You can specify a subdirectory. path: / # The endpoint of the region where the bucket is located. url: "http://oss-cn-hangzhou-internal.aliyuncs.com" # Use the RRSA method for authentication. authType: rrsa # The RAM role that you created or modified. roleName: demo-role-for-rrsa # Custom parameters. otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" # The volume access mode. volumeAs: sharepath # Fixed value for the Alibaba Cloud OSS CSI plug-in. provisioner: ossplugin.csi.alibabacloud.com # The reclaim policy for the dynamically provisioned persistent volume. reclaimPolicy: Retain # The volume binding mode. volumeBindingMode: ImmediateParamètre
Description
bucketLe bucket OSS à monter.
pathLa version du composant CSI doit être v1.14.8.32-c77e277b-aliyun ou ultérieure.
Chemin de montage relatif au répertoire racine du bucket. La valeur par défaut est
/, ce qui monte l'intégralité du bucket.Si la version d'ossfs est antérieure à 1,91, le
pathspécifié doit exister dans le bucket OSS. Pour plus d'informations, consultez Nouvelles fonctionnalités d'ossfs 1,91 et versions ultérieures.urlauthTypeDéfinissez ce paramètre sur
rrsapour utiliser RRSA pour l'authentification.roleNameLe rôle RAM que vous avez créé ou modifié.
Pour configurer des permissions différentes pour chaque StorageClass, vous pouvez créer plusieurs rôles RAM et spécifier différentes valeurs
roleNamedans chaque StorageClass.otherOptsParamètres personnalisés pour le volume persistant OSS, au format
-o -o. Par exemple :-o umask=022 -o max_stat_cache_size=100000 -o allow_other.provisionerType de pilote. Cette valeur est fixée à
ossplugin.csi.alibabacloud.comlors de l'utilisation du plug-in CSI OSS d'Alibaba Cloud.reclaimPolicyPolitique de récupération pour les volumes persistants provisionnés dynamiquement. Les volumes persistants OSS prennent uniquement en charge
Retain, ce qui signifie que lorsque vous supprimez un PVC, le volume persistant correspondant et les données dans le bucket OSS ne sont pas supprimés.volumeBindingModeMode de liaison du volume.
Les volumes persistants OSS ne nécessitent pas d'affinité de nœud basée sur la zone de disponibilité. Vous pouvez utiliser la valeur par défaut
Immediate.volumeAsMode d'accès au volume. La valeur par défaut est
sharepath. Valeurs valides :-
sharepath: tous les volumes persistants partagent le même chemin de montage. Les données sont stockées à<bucket>:<path>/. -
subpath: crée un sous-répertoire dédié pour chaque volume persistant afin d'isoler les données. Les données sont stockées à<bucket>:<path>/<pv-name>/.Ce paramètre prend effet uniquement lorsque la version du composant CSI est 1.31.3 ou ultérieure.
sigVersionVersion de signature pour les requêtes envoyées au serveur OSS.
"v1"(par défaut) : utilise la Signature Version 1 d'OSS."v4"(recommandé) : utilise la Signature Version 4 d'OSS.
-
-
Créez la StorageClass.
kubectl apply -f sc-oss.yaml
Méthode AccessKey
kubectl
1. Créer une StorageClass
-
Créez un Secret dans le même namespace que votre application.
Remplacez
akIdetakSecretpar votre AccessKey ID et votre AccessKey Secret.kubectl create secret generic oss-secret --from-literal='akId=<yourAccessKey ID>' --from-literal='akSecret=<yourAccessKey Secret>' -
Créez la StorageClass.
-
Créez un fichier nommé
sc-oss.yaml.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: sc-oss parameters: # Replace with the name of your OSS bucket. bucket: bucket # The mount path relative to the bucket's root directory. You can specify a subdirectory. path: / # The endpoint of the region where the bucket is located. url: "http://oss-cn-hangzhou-internal.aliyuncs.com" # The name of the Secret that stores the AccessKey information. csi.storage.k8s.io/node-publish-secret-name: oss-secret # The namespace where the Secret that stores the AccessKey information is located. csi.storage.k8s.io/node-publish-secret-namespace: default # Custom parameters. otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" # Fixed value for the Alibaba Cloud OSS CSI plug-in. provisioner: ossplugin.csi.alibabacloud.com # The reclaim policy for the dynamically provisioned persistent volume. reclaimPolicy: Retain # The volume binding mode. volumeBindingMode: ImmediateParamètre
Description
nameNom de la StorageClass.
bucketLe bucket OSS à monter.
pathLa version du composant CSI doit être v1.14.8.32-c77e277b-aliyun ou ultérieure.
Chemin de montage relatif au répertoire racine du bucket. La valeur par défaut est
/, ce qui monte l'intégralité du bucket.Si la version d'ossfs est antérieure à 1,91, le
pathspécifié doit exister dans le bucket OSS. Pour plus d'informations, consultez Nouvelles fonctionnalités d'ossfs 1,91 et versions ultérieures.urlcsi.storage.k8s.io/node-publish-secret-nameNom du Secret contenant les informations d'AccessKey.
csi.storage.k8s.io/node-publish-secret-namespaceNamespace où se trouve le Secret contenant les informations d'AccessKey.
otherOptsParamètres personnalisés pour le volume persistant OSS, au format
-o -o. Par exemple :-o umask=022 -o max_stat_cache_size=100000 -o allow_other.provisionerType de pilote. Cette valeur est fixée à
ossplugin.csi.alibabacloud.comlors de l'utilisation du plug-in CSI OSS d'Alibaba Cloud.reclaimPolicyPolitique de récupération pour les volumes persistants provisionnés dynamiquement. Les volumes persistants OSS prennent uniquement en charge
Retain, ce qui signifie que lorsque vous supprimez un PVC, le volume persistant correspondant et les données dans le bucket OSS ne sont pas supprimés.volumeBindingModeMode de liaison du volume.
Les volumes persistants OSS ne nécessitent pas d'affinité de nœud basée sur la zone de disponibilité. Vous pouvez utiliser la valeur par défaut
Immediate.volumeAsMode d'accès au volume. La valeur par défaut est
sharepath. Valeurs valides :-
sharepath: tous les volumes persistants partagent le même chemin de montage. Les données sont stockées à<bucket>:<path>/. -
subpath: crée un sous-répertoire dédié pour chaque volume persistant afin d'isoler les données. Les données sont stockées à<bucket>:<path>/<pv-name>/.Ce paramètre prend effet uniquement lorsque la version du composant CSI est 1.31.3 ou ultérieure.
sigVersionVersion de signature pour les requêtes envoyées au serveur OSS.
"v1"(par défaut) : utilise la Signature Version 1 d'OSS."v4"(recommandé) : utilise la Signature Version 4 d'OSS.
-
-
Créez la StorageClass.
kubectl apply -f sc-oss.yaml
-
Console
-
Stockez l'AccessKey de l'Étape 1 sous forme de Secret pour le volume persistant.
Sur la page ACK Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Cliquez sur Create from YAML et suivez les instructions à l'écran pour créer le Secret.
apiVersion: v1 kind: Secret metadata: name: oss-secret # Must match the namespace of the application. namespace: default stringData: # Replace with your AccessKey ID. akId: <your AccessKey ID> # Replace with your AccessKey secret. akSecret: <your AccessKey Secret>
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Sur la page StorageClasses, cliquez sur Create, définissez PV Type sur OSS, puis suivez les instructions à l'écran pour configurer la StorageClass.
Paramètre
Description
Certificat d'accès
Secret utilisé pour accéder à OSS, contenant l'AccessKey ID et l'AccessKey Secret.
Bucket ID:
Bucket OSS à utiliser.
La console affiche uniquement les buckets accessibles avec l'AccessKey configuré.
Chemin OSS
La version du composant CSI doit être v1.14.8.32-c77e277b-aliyun ou ultérieure.
Chemin de montage relatif au répertoire racine du bucket. La valeur par défaut est
/, ce qui monte l'intégralité du bucket.Si la version d'ossfs est antérieure à 1,91, le
pathspécifié doit exister dans le bucket OSS. Pour plus d'informations, consultez Nouvelles fonctionnalités d'ossfs 1,91 et versions ultérieures.Volume Mode
Mode d'accès au volume. La valeur par défaut est Shared Directory. Valeurs valides :
Le mode Subdirectory prend effet uniquement lorsque la version du composant CSI est 1.31.3 ou ultérieure. Sinon, le mode Shared Directory est utilisé.
-
Shared Directory (
sharepath) : tous les volumes persistants partagent le même chemin de montage. Les données sont stockées à<bucket>:<path>/. -
Subdirectory (
subpath) : crée un sous-répertoire dédié pour chaque volume persistant afin d'isoler les données. Les données sont stockées à<bucket>:<path>/<pv-name>/.
Endpoint
Par défaut, la console utilise HTTP pour accéder à OSS via un réseau interne. Pour utiliser HTTPS, vous devez créer le PV à l'aide de kubectl.
Politique de récupération
Politique de récupération pour les volumes persistants provisionnés dynamiquement. Les volumes persistants OSS prennent uniquement en charge
Retain, ce qui signifie que lorsque vous supprimez un PVC, le volume persistant correspondant et les données dans le bucket OSS ne sont pas supprimés.Optional Parameters:
Paramètres personnalisés pour le volume persistant OSS, au format
-o -o. Par exemple :-o umask=022 -o max_stat_cache_size=100000 -o allow_other. -
Étape 3 : Créer un PVC
Créez un PVC pour demander dynamiquement des ressources de stockage. Le plug-in CSI crée automatiquement un PV basé sur la StorageClass.
kubectl
-
Créez un fichier nommé
pvc-oss.yaml:apiVersion: v1 kind: PersistentVolumeClaim metadata: # PVC name name: pvc-oss spec: # Configure the access mode. ReadOnlyMany means that ossfs mounts the OSS bucket in read-only mode. accessModes: - ReadOnlyMany volumeMode: Filesystem resources: requests: # Declare the requested storage capacity. This value does not limit the actual capacity of the OSS volume. storage: 20Gi # Specify the StorageClass to use. storageClassName: sc-ossParamètre
Description
accessModesSpécifie le mode d'accès. Les valeurs prises en charge sont
ReadOnlyManyetReadWriteMany.Si défini sur
ReadOnlyMany, ossfs monte le bucket OSS en mode lecture seule.storageCapacité demandée pour le volume. Cette valeur ne limite pas la capacité réelle du volume OSS.
storageClassNameNom de la StorageClass.
-
Créez le PVC :
kubectl apply -f pvc-oss.yaml -
Vérifiez que le PVC est créé et dans l'état Bound :
kubectl get pvc pvc-ossSortie attendue :
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE pvc-oss Bound oss-251d111d-3b0b-4879-81a0-eb5a19xxxxxx 20Gi ROX sc-oss <unset> 4d20h
Console
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Sur la page Persistent Volume Claims, cliquez sur Create. Définissez PVC Type sur OSS et configurez les paramètres.
Paramètre
Description
Allocation Mode
Sélectionnez Use StorageClass.
Existing Storage Class
Cliquez sur Select Storage Class et choisissez la StorageClass précédemment créée.
Capacité
Capacité demandée pour le volume. Cette valeur ne limite pas la capacité réelle du volume OSS.
Access Mode
Spécifie le mode d'accès. Les valeurs prises en charge sont
ReadOnlyManyetReadWriteMany.Si défini sur
ReadOnlyMany, ossfs monte le bucket OSS en mode lecture seule.
Étape 4 : Créer une application et monter un volume
Pour monter le volume, référencez le PVC dans votre application.
kubectl
-
Créez un fichier
oss-workload.yaml.apiVersion: apps/v1 kind: Deployment metadata: name: oss-workload labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 volumeMounts: # The mount path in the container. - name: pvc-oss mountPath: "/data" # Configure a health check. livenessProbe: exec: command: - ls - /data initialDelaySeconds: 30 periodSeconds: 30 volumes: - name: pvc-oss persistentVolumeClaim: # Reference the PVC that you created. claimName: pvc-oss -
Créez l'application.
kubectl create -f oss-workload.yaml -
Vérifiez le montage.
-
Confirmez que les Pods sont en cours d'exécution.
kubectl get pod -l app=nginx -
Accédez à un Pod et vérifiez le point de montage.
kubectl exec -it <pod-name> -- ls /dataLa sortie doit lister les fichiers présents dans le chemin de montage OSS.
-
Console
Sur la page ACK Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
Sur la page Deployments, cliquez sur Create from Image.
-
Cliquez sur Create from Image et suivez les instructions à l'écran pour configurer les paramètres de l'application.
Les paramètres clés sont décrits dans le tableau suivant. Pour les autres paramètres, vous pouvez utiliser les valeurs par défaut. Pour plus d'informations, consultez Créer un déploiement.
Page de configuration
Paramètre
Description
Basic Information
Replicas:
Nombre de réplicas de Pod pour le déploiement.
Container
Nom de l'image
Adresse de l'image conteneur pour l'application, par exemple
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6.Required Resources
Quantité de vCPU et de mémoire à allouer à chaque conteneur.
Volumes
Cliquez sur Add PVC puis configurez les paramètres.
Mount Source : sélectionnez le PVC créé précédemment.
Container Path : chemin dans le conteneur où le volume sera monté, par exemple
/data.
Labels and Annotations
Libellé de Pod
Par exemple, définissez la clé sur 'app' et la valeur sur 'nginx'.
-
Vérifiez l'état du déploiement de l'application.
Sur la page Deployments, cliquez sur le nom de votre application. Dans l'onglet Pods, vérifiez que les Pods ont le statut Running.
Étape 5 : Vérifier le stockage partagé et persistant
Vérifier le stockage partagé
Pour vérifier le stockage partagé, créez un fichier dans un Pod puis visualisez-le dans un autre.
-
Obtenez les noms des Pods de l'application.
kubectl get pod -l app=nginx -
Cet exemple utilise le Pod
oss-workload-66fbb85b67-d****:-
ReadWriteMany: créez le fichier tmpfile dans le chemin/data.kubectl exec oss-workload-66fbb85b67-d**** -- touch /data/tmpfile ReadOnlyMany: téléchargez le fichiertmpfilevers le chemin correspondant dans le bucket OSS en utilisant la console OSS ou en téléchargeant un fichier avec cp.
-
-
Vérifiez la présence du fichier dans le chemin de montage d'un autre Pod.
Prenons l'exemple d'un Pod nommé
oss-workload-66fbb85b67-l****avec le chemin de montagedata.kubectl exec oss-workload-66fbb85b67-l**** -- ls /data | grep tmpfileLa présence du fichier dans la sortie confirme que les Pods peuvent partager des données.
tmpfileSi vous ne voyez pas la sortie attendue, assurez-vous que la version de votre composant CSI est v1.20.7 ou ultérieure.
Vérifier le stockage persistant
Pour vérifier le stockage persistant, supprimez un Pod puis vérifiez que le fichier reste présent après la recréation automatique du Pod.
-
Supprimez un Pod de l'application. Le contrôleur de déploiement le recrée automatiquement.
kubectl delete pod oss-workload-66fbb85b67-d**** -
Vérifiez l'état des Pods. Attendez que le nouveau Pod démarre et passe à l'état
Running.kubectl get pod -l app=nginx -
Visualisez les fichiers dans le chemin
/data.Cet exemple utilise un Pod nommé
oss-workload-66fbb85b67-z****avec le chemin de montagedata.kubectl exec oss-workload-66fbb85b67-z**** -- ls /data | grep tmpfileLa sortie montre que le fichier
tmpfileexiste toujours, ce qui confirme que les données persistent même après la recréation du Pod.tmpfile
Impacts connus
-
Risques liés à l'intégrité des données
Risque de cohérence des écritures simultanées : pour améliorer la stabilité des écritures, nous recommandons de mettre à niveau le composant CSI vers la version v1.28 ou ultérieure. Cependant, dans les scénarios d'écriture simultanée sur un fichier unique, la fonctionnalité de « téléchargement par écrasement » d'OSS peut tout de même écraser les données. Vous devez garantir la cohérence des données au niveau applicatif.
Risque de synchronisation des données et de suppression accidentelle : lorsqu'un volume est monté, la suppression ou la modification de fichiers dans le chemin de montage sur un Pod d'application ou un nœud hôte synchronise directement ces changements avec les fichiers sources dans l'OSS Bucket. Pour éviter toute suppression accidentelle de données, nous recommandons d'activer le versioning pour votre OSS Bucket.
-
Risques liés à la stabilité des applications
-
Risque d'OOM : lorsque vous effectuez une opération
readdir(telle que la commandelsdans un script shell) sur un grand nombre de fichiers (par exemple, plus de 100 000, selon la mémoire du nœud) pour la première fois, ossfs charge toutes les métadonnées en une seule fois et consomme une grande quantité de mémoire. Cela peut provoquer l'arrêt du processus par OOM Killer et rendre le point de montage indisponible.Pour atténuer ce risque, nous recommandons de monter un sous-répertoire de l'OSS Bucket ou d'optimiser votre structure de répertoires.
-
Temps de montage prolongé : la configuration de
securityContext.fsgroupdans une application amène kubelet à modifier récursivement les permissions des fichiers (chmod/chown) lors du montage d'un volume. Si le volume contient un grand nombre de fichiers, le temps de montage est considérablement prolongé, ce qui peut entraîner des retards importants dans le démarrage des Pods.Si vous devez configurer ce paramètre mais souhaitez réduire le temps de montage, consultez Augmentation du temps de montage pour les volumes OSS.
-
Risque d'invalidation de clé (authentification AccessKey) : si un AccessKey référencé par un PV devient invalide ou si ses permissions changent, l'application associée perd immédiatement l'accès.
Pour rétablir l'accès, vous devez mettre à jour les identifiants dans le Secret et redémarrer le Pod de l'application pour forcer un remontage. Cela provoque une interruption de service ; effectuez donc cette opération pendant une fenêtre de maintenance. Pour plus d'informations, consultez Solutions.
-
-
Risques liés aux coûts
Coûts des fragments : lors du téléchargement de fichiers supérieurs à 10 Mo, ossfs effectue un téléchargement multipartite, divisant le fichier en fragments. Si un téléchargement est interrompu de manière inattendue, par exemple en raison d'un redémarrage d'application, vous devez supprimer manuellement les fragments ou les supprimer à l'aide de règles de cycle de vie pour éviter les coûts de stockage liés aux fragments incomplets.
Libération des ressources
-
Supprimer les charges de travail
Action : supprimez toutes les charges de travail, telles que les Deployments et les StatefulSets, qui utilisent le PVC. Cela arrête les Pods et démonte le volume.
Exemple de commande :
kubectl delete deployment <your-deployment-name>
-
Supprimer le PVC
Action : supprimez le PVC. La politique de récupération (
reclaimPolicy) pour les volumes OSS provisionnés dynamiquement prend uniquement en chargeRetain. Lorsque vous supprimez le PVC, son PV lié passe à l'étatReleased, et le bucket OSS backend conserve intégralement le sous-répertoire et les données correspondants.Exemple de commande :
kubectl delete pvc <your-pvc-name>
-
Supprimer le PV
Action : supprimez le PV à l'état
Released. Cette opération supprime uniquement l'objet ressource PV de Kubernetes et ne supprime aucune donnée dans le bucket OSS backend.Exemple de commande :
kubectl delete pv <your-pv-name>
-
Supprimer la StorageClass et le Secret (facultatif)
Action : supprimez la StorageClass et le Secret associé s'ils ne sont plus nécessaires. Cette opération supprime uniquement les objets ressources de Kubernetes et n'affecte pas le bucket OSS backend.
Exemples de commandes :
kubectl delete sc <your-storageclass-name>,kubectl delete secret <your-secret-name>
Documents connexes
Gérez les volumes OSS à l'aide de CNFS pour améliorer leurs performances et leur QoS. Pour plus d'informations, consultez Gérer le cycle de vie des volumes OSS.
Activez le chiffrement côté serveur pour protéger les données sensibles au repos dans OSS. Pour plus d'informations, consultez Chiffrer les volumes ossfs 1.0.
Pour les questions fréquemment posées sur ossfs et OSS, consultez ossfs 1.0 (par défaut) et FAQ sur les volumes ossfs 1.0.
Activez la surveillance du stockage des conteneurs et configurez des alertes pour détecter rapidement les anomalies de volume ou les goulots d'étranglement des performances.
ossfs 1.0 offre une meilleure cohérence des données pour les écritures aléatoires et simultanées que ossfs 2.0. Cependant, ossfs 2.0 offre de meilleures performances pour les lectures et écritures séquentielles.