Création d'un stockage de système de fichiers persistant avec un système de fichier existant
Sur Compute Cloud@Customer, vous pouvez provisionner une demande 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 un export de système de fichiers. Utilisez ensuite la commande kubectl
pour créer la classe de stockage, le volume persistant et la demande de volume persistant.
-
Créez une cible de montage.
Pour obtenir des instructions, reportez-vous à Création d'une cible de montage.
Important
Pour vous assurer que la cible de montage peut être atteinte à partir des noeuds de processus actif, créez la cible de montage sur le sous-réseau qui contient le sous-réseau de processus actif décrit dans Création de ressources réseau OKE. Assurez-vous que le port TCP 2049 vers le serveur NFS est ouvert sur ce sous-réseau.
Notez l'OCID de l'ensemble d'éléments d'export et l'OCID de la cible de montage. L'OCID de l'ensemble d'éléments d'export est requis pour créer l'export de système de fichiers, et l'OCID de la cible de montage est requis pour créer la classe de stockage lors des é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, reportez-vous à 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, volumes persistants et demandes de volume persistant par cluster, et ils partagent tous un NFS.
-
Créez un export de système de fichiers pour associer la cible de montage au système de fichiers.
Pour obtenir des instructions, reportez-vous à Création d'un export pour un système de fichiers.
-
Indiquez l'OCID de l'ensemble d'éléments d'export à partir de la sortie de la création de la cible de montage.
-
Indiquez le CIDR (réseau le plus petit) le plus long de la plage CIDR que vous avez indiquée lors de la création du sous-réseau de "processus actif", comme décrit dans la section Création de ressources réseau OKE.
Notez le chemin d'export et l'adresse IP de la cible de montage.
-
-
Créez une classe de stockage en indiquant 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.yaml
Le contenu du fichier
sc.yaml
est le suivant :kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_ID
Les valeurs des propriétés
apiVersion
etprovisioner
sont standard. La valeur du nom de la classe de stockage dans la section des métadonnées est indiquée par l'utilisateur. Vous pouvez créer plusieurs classes de stockage par cible de montage. Le nom de la classe de stockage est utilisé dans les étapes suivantes pour créer une demande de volume persistant et de volume persistant.Utilisez la sous-commande
get sc
pour afficher des informations sur la nouvelle classe de stockage :$ kubectl get sc
-
Créez un volume persistant en indiquant le nom de la classe de stockage, le chemin d'export 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
de l'étape précédente. Le chemin d'export et l'adresse IP de la cible de montage proviennent de l'étape de création d'export de système de fichiers. Voir l'étape 3 ci-dessus.$ kubectl create -f pv.yaml
Le contenu du fichier
pv.yaml
est 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: false
Le nom de volume persistant dans la section
metadata
est spécifié par l'utilisateur. Une classe de stockage peut contenir plusieurs volumes persistants.Dans la section
nfs
, la valeurserver
est l'adresse IP de la cible de montage et la valeurpath
est le chemin d'export.Utilisez la sous-commande
get pv
pour afficher des 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 demande de volume persistant en indiquant le nom du volume persistant et le nom de la classe de stockage.
Le nom de volume persistant et le nom de classe de stockage figurent dans la sortie de la commande
get pv
.Attendez que le statut PVC soit lié avant d'utiliser ce stockage.
kubectl create -f pvc.yaml
Le contenu du fichier
pvc.yaml
est le suivant :apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pv
Le nom de la demande de volume persistant dans la section
metadata
est spécifié par l'utilisateur. Vous pouvez avoir plusieurs demandes de volume persistant sur un volume persistant.La valeur de la propriété
accessModes
doit êtreReadWriteMany
.La valeur de la propriété
storage
doit être d'au moins 50 gigaoctets.Exécutez la commande suivante pour afficher les informations sur la nouvelle demande 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 PVC lors de la création d'autres objets, tels que des pods.
Par exemple, vous pouvez créer un pod à partir de la définition de pod suivante, qui indique au système d'utiliser la PVC
fss-pvc
comme volumenginx
, monté par le pod dans/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-pvc
Exécutez la commande suivante pour vérifier que le pod utilise la nouvelle demande de volume persistant :
$ kubectl describe pod fss-dynamic-app