Création d'un stockage de système de fichiers persistant à l'aide d'un système de fichiers existant
Sur Compute Cloud@Customer, vous pouvez provisionner une revendication de volume persistant sur un système de fichiers existant.
Cette procédure crée une cible de montage, un système de fichiers et une exportation de système de fichiers. Utilisez ensuite la commande kubectl pour créer la classe de stockage, le volume persistant et la revendication de volume persistant.
-
Créer une cible de montage.
Pour obtenir des instructions, voir Création d'une cible de montage.
Important
Pour vous assurer que la cible de montage peut être atteinte à partir des noeuds de travail, créez la cible de montage dans le sous-réseau pour lequel le sous-réseau de travail est décrit sous Création de ressources de réseau OKE. Assurez-vous que le port TCP 2049 vers le serveur NFS est ouvert sur ce sous-réseau.
Notez l'OCID du jeu d'exportations et l'OCID de la cible de montage. L'OCID du jeu d'exportations est requis pour créer l'exportation du système de fichiers, et l'OCID de la cible de montage est requis pour créer la classe de stockage dans les étapes ultérieures.
Vous ne pouvez avoir qu'une seule cible de montage par VCN.
-
Créez un système de fichiers.
Pour obtenir des instructions, voir Création d'un système de fichiers.
Vous ne pouvez créer qu'un seul système de fichiers par VCN. Vous pouvez avoir plusieurs classes de stockage, des volumes persistants et des revendications de volumes persistants par grappe, et ils partagent tous un NFS.
-
Créez une exportation de système de fichiers pour associer la cible de montage au système de fichiers.
Pour obtenir des instructions, voir Création d'une exportation pour un système de fichiers.
-
Spécifiez l'OCID du jeu d'exportations à partir de la sortie de la création de la cible de montage.
-
Spécifiez le CIDR le plus long (réseau le plus petit) dans l'intervalle CIDR que vous avez spécifié lors de la création du sous-réseau de "travailleur", comme décrit dans Création de ressources de réseau OKE.
Notez le chemin d'exportation et l'adresse IP de la cible de montage.
-
-
Créez une classe de stockage, en spécifiant l'OCID de la cible de montage à partir de la sortie de l'étape de création de la cible de montage.
$ kubectl create -f sc.yamlLe contenu du fichier
sc.yamlest le suivant :kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_IDLes valeurs des propriétés
apiVersionetprovisionersont standard. La valeur du nom de la classe de stockage dans la section de métadonnées est spécifiée par l'utilisateur. Vous pouvez créer plus d'une classe de stockage par cible de montage, et le nom de la classe de stockage est utilisé dans les étapes suivantes pour créer une revendication de volume persistant et de volume persistant.Utilisez la sous-commande
get scpour voir les informations sur la nouvelle classe de stockage :$ kubectl get sc -
Créez un volume persistant en spécifiant le nom de la classe de stockage, le chemin d'exportation et l'adresse IP de la cible de montage.
Le nom de la classe de stockage se trouve dans les métadonnées du fichier
sc.yamlà l'étape précédente. Le chemin d'exportation et l'adresse IP de la cible de montage sont extraits de l'étape de création de l'exportation du système de fichiers. Voir l'étape 3 ci-dessus.$ kubectl create -f pv.yamlLe contenu du fichier
pv.yamlest le suivant :apiVersion: v1 kind: PersistentVolume metadata: name: fss-pv spec: storageClassName: pca-fss capacity: storage: 200Gi accessModes: - ReadWriteMany mountOptions: - nosuid nfs: server: mount_target_IP_address path: "/export/unique_ID" readOnly: falseLe nom du volume persistant dans la section
metadataest spécifié par l'utilisateur. Vous pouvez avoir plusieurs volumes persistants dans une classe de stockage.Dans la section
nfs, la valeurserverest l'adresse IP de la cible de montage et la valeurpathest le chemin d'exportation.Utilisez la sous-commande
get pvpour voir les informations sur le nouveau volume persistant :$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE fss-pv 200Gi RWX Retain Bound default/fss-pvc pca-fss 20h -
Créez une revendication de volume persistant, en spécifiant le nom du volume persistant et le nom de la classe de stockage.
Le nom du volume persistant et le nom de la classe de stockage se trouvent dans la sortie de la commande
get pv.Attendez que le statut de la revendication de volume persistant soit Lié avant d'utiliser ce stockage.
kubectl create -f pvc.yamlLe contenu du fichier
pvc.yamlest le suivant :apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pvLe nom de la revendication de volume persistant dans la section
metadataest spécifié par l'utilisateur. Vous pouvez avoir plusieurs revendications de volume persistant sur un volume persistant.La valeur de la propriété
accessModesdoit êtreReadWriteMany.La valeur de la propriété
storagedoit être d'au moins 50 gigaoctets.Exécutez la commande suivante pour voir les informations sur la nouvelle revendication de volume persistant :
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE fss-pvc Bound fss-pv 200Gi RWX pca-fss 2h -
Utilisez la revendication de volume persistant lors de la création d'autres objets, tels que des pods.
Par exemple, vous pouvez créer un nouveau pod à partir de la définition de pod suivante, qui demande au système d'utiliser la PVC
fss-pvcen tant que volumenginx, monté par le pod sur/persistent-storage:apiVersion: v1 kind: Pod metadata: name: fss-dynamic-app spec: containers: - name: nginx image: nginx:latest ports: - name: http containerPort: 80 volumeMounts: - name: persistent-storage mountPath: /usr/share/nginx/html volumes: - name: persistent-storage persistentVolumeClaim: claimName: fss-pvcExécutez la commande suivante pour vérifier que le pod utilise la nouvelle revendication de volume persistant :
$ kubectl describe pod fss-dynamic-app