Skip to main content

9_Volumes

Les volumes

Inconnu : « Oui, mais tu nous parles de pod avec Nginx, et pour l’instant, on ne voit que la page d’accueil par défaut. »

Rohba : « Effectivement, Billy, on y arrive. »

Dans tout ce que nous avons vu jusqu’à présent, il n’y a pas eu de modification du serveur web.

Pour le moment, je ne parlerai pas des volumes permanents ; cela viendra dans un deuxième temps.

Voici le manifest que je vous partage :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx_lab
  template:
    metadata:
      labels:
        app: nginx_lab
    spec:
      containers:
        - image: nginx:latest
          name: container-nginx
          volumeMounts:
            - name: my-volume
              mountPath: /usr/share/nginx/html
      volumes:
        - name: my-volume
          hostPath:
            path: /mnt/web_server
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx_lab
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30080
  type: NodePort

J’ai modifié le premier manifest que je vous avais donné (plus haut) afin d’ajouter un montage de volume vers un chemin spécifique.

Un point important : le piège dans lequel je suis tombé est que le chemin de l’hôte est créé sur le worker, et non sur le CPN (Control Plane Node).

Ainsi, nous montons le dossier /mnt/web_server, qui correspond au répertoire /usr/share/nginx/html, le root folder du serveur web Nginx dans ce conteneur.

Billy : « Pourquoi faire ? »

Rohba : « Avec un peu de bon sens, pour le test, je vais modifier la page index.html afin d’afficher un joli Rohba. »

Billy : « Bah… Ça sert à rien. »

J’applique donc mon manifest :

kubectl apply -f nginx_volume.yml

Cela crée correctement mon pod :

rohba@master1:~$ kubectl get pods -o wide
NAME                          READY   STATUS    RESTARTS   AGE   IP                NODE                  NOMINATED NODE   READINESS GATES
deployment-5978dc9bdf-wxp2q   1/1     Running   0          16s   192.168.251.136   worker3.rohba.local   <none>           <none>

Voici les deux tests que nous allons effectuer :

  1. Créer un fichier toto.html dans le conteneur qui affiche Hello world. Rohba : « Je prends les devants, rien de plus classique qu’un petit Hello world, n’est-ce pas Billy ? » Billy : « Nianiania. »

  2. Créer un fichier index.html dans le dossier /mnt/web_server pour afficher Rohba, comme mentionné plus haut.

Rohba : « Je prends les devants, rien de plus classique qu’un petit Hello world, n’est-ce pas, Billy ? »

Billy : « Nianiania. »

Et le second : Créer dans notre dossier /mnt/web_server un fichier index.html pour afficher "Rohba" comme sité plus haut.