Outils pour utilisateurs

Outils du site


informatique:kebernetes:kube_storage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:kebernetes:kube_storage [2023/12/11 14:07]
benoit
informatique:kebernetes:kube_storage [2023/12/13 09:14] (Version actuelle)
benoit [Lancer un POD qui réclame le volume]
Ligne 2: Ligne 2:
  
  
-===== Créer un volume ​Peristant ​=====+===== Créer un volume ​Persistant ​=====
  
-Créer ​le répertoire : +Sur le node créer ​le répertoire ​pour y stocker des données ​
  
   mkdir /mnt/data   mkdir /mnt/data
  
-Créer ​le fichier manisfeste : +Sur le master créer ​le fichier manisfeste : 
  
   vim create_PersistentVol.yml  ​   vim create_PersistentVol.yml  ​
Ligne 21: Ligne 21:
       type: local       type: local
   spec:   spec:
-    storageClassName:​ manual+    ​#storageClassName:​ manual
     capacity:     capacity:
       storage: 1Gi       storage: 1Gi
Ligne 29: Ligne 29:
       path: "/​mnt/​data"​       path: "/​mnt/​data"​
  
 +Explication : 
 +  * **metadata.name** : Définir nom du volume.
 +  * **metadata.labels.type**:​ Indiquer le type de stockage Ici on utilise le disque local du node.
 +  * **spec.capacity.storage**:​ Indiquer la capacité allouée.
 +  * **spec.capacity.accessModes**:​ Indiquer si l'​accès est lecture seule ou écriture.
 +  * **spec.capacity.hostPath**:​ Indiquer le chemin d'​accès au données sur le node.
  
 +Appliquer le manifeste : 
 +  kubectl apply -f create_PersistentVol.yml  ​
  
 +Pour lister les volumes Persistants : 
 +  kubectl get persistentvolumes
 +  kubectl get pv
  
 +===== Créer une réclamation de volume Persistant =====
 +
 +Un pod ne peut pas utiliser directement un volume. Il faut créer un objet de réclamation de volume en lien avec le volume pour qu'il puisse être utilisé par un POD.
 +
 +Créer le fichier manisfeste suivant : 
 +  vim create_PersistentVolClaim.yml
 +
 +Insérer le contenu suivant : 
 +  apiVersion: v1
 +  kind: PersistentVolumeClaim
 +  metadata:
 +    name: pv-claim-01
 +  spec:
 +    #​storageClassName:​ manual
 +    accessModes:​
 +      - ReadWriteOnce
 +    resources:
 +      requests:
 +        storage: 500Mi
 +    volumeName: pv-volume-01
 +
 +Explication : 
 +  * **metadata.name**:​ Nom de l'​objet.
 +  * **spec.accessModes**:​ Indiquer si la réclamation peut se faire en lecture ou en écriture.
 +  * **spec.resources.requests.storage**:​ Indiquer l'​espace qui doit être réclamé.
 +  * **spec.volumeName**:​ Indiquer le nom du volume à utiliser pour la réclamation.
 +
 +Appliquer le manifeste : 
 +  kubectl apply -f create_PersistentVolClaim.yml
 +
 +Pour lister les réclamation de volumes Persistants : 
 +  kubectl get persistentvolumeClaims
 +  kubectl get pvc  ​
 +
 +===== Lancer un POD qui réclame le volume =====
 +
 +Créer le fichier Manisteste :
 +  vim vim create_pods_persistantVol.yml
 +
 +Insérer les contenu suivant :
 +  apiVersion: v1
 +  kind: Pod
 +  metadata:
 +    name: mydeb-pod
 +  spec:
 +    nodeName: k8s-node
 +    volumes:
 +      - name: pv-storage-01
 +        persistentVolumeClaim:​
 +          claimName: pv-claim-01
 +    containers:
 +      - name: mydeb
 +        image: debian
 +        command: ["​sleep"​]
 +        args: ["​infinity"​]
 +        ports:
 +          - containerPort:​ 80
 +        volumeMounts:​
 +          - mountPath: "/​var/​www/​html"​
 +            name: pv-storage-01
 +
 +Explication : 
 +  * **spec.nodeName**:​ Si les données sont sur un node spécifique,​ on peut indiquer ici le node sur lequel sera affecté le pod.
 +  * **spec.volumes.name** : Définir un nom stockage qui servira de référence pour assigner le volume aux conteneurs.
 +  * **spec.volumes.persistentVolumeClaim.claimName**:​ Indiquer le nom de la réclamation de volume. Créé plus haut.
 +  * **spec.containers.volumeMounts.mountPath**:​ Indiquer le point de montage du volume dans le conteneur.
 +  * **spec.containers.volumeMounts.name**:​ Indiquer le nom du stockage à utiliser. Doit correspondre avec **spec.volumes.name**
 +
 +Appliquer le manifeste : 
 +  kubectl apply -f create_pods_persistantVol.yml
informatique/kebernetes/kube_storage.1702300043.txt.gz · Dernière modification: 2023/12/11 14:07 par benoit