Kubernetes - Déploiement de container avec stockage NFS
Jump to navigation
Jump to search
1- Definition d'un "Persistant Volume"; dans cet ex. de 5Gi, par le fichier yaml suivant:
apiVersion: v1 kind: PersistentVolume metadata: name: nfs-vol1 spec: capacity: storage: 5Gi accessModes: - ReadWriteMany nfs: # NFS node IP server: 192.168.63.4 path: "/export/vol1"
2 - Definition du "Persistent Volume Claim" associé:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-pvc spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 5Gi
Maintenant, voici un exemple de déploiement pour tester le stockage NFS:
apiVersion: v1 kind: ReplicationController metadata: name: nfs-busybox spec: replicas: 2 selector: name: nfs-busybox template: metadata: labels: name: nfs-busybox spec: containers: - image: busybox command: - sh - -c - 'while true; do date > /mnt/index.html; hostname >> /mnt/index.html; sleep $(($RANDOM % 5 + 5)); done' imagePullPolicy: IfNotPresent name: busybox volumeMounts: # name must match the volume name below - name: nfs mountPath: "/mnt" volumes: - name: nfs persistentVolumeClaim: claimName: nfs-pvc
où le volume "nfs" est associé au Persistent Volume "nfs-vol1" via le Volume Claim "nfs-pvc"
un Volume Claim ne peut être utilisé que par un volume à la fois
une fois le Volume Claim libéré, les données restent sur le Persistent Volume (effacement manuel requis => à tester / confirmer)
3- Déploiement et test des busybox pour test stockage NFS:
kubectl apply -f busybox1.yaml kubectl get pods kubectl exec -it nfs-busybox-6b97b46b46-vbx2p cat /mnt/index.html Mon Jun 15 16:11:47 UTC 2020 nfs-busybox-6b97b46b46-vbx2p kubectl exec -it nfs-busybox-6b97b46b46-vbx2p cat /mnt/index.html Mon Jun 15 16:11:48 UTC 2020 nfs-busybox-6b97b46b46-vrwmc kubectl exec -it nfs-busybox-6b97b46b46-vrwmc cat /mnt/index.html Mon Jun 15 16:12:02 UTC 2020 nfs-busybox-6b97b46b46-vbx2p
Le fichier index.html est bien mis à jour par les deux instances déployées.
Références
Installer et configurer kubectl
Installer le Kubernetes Dashboard