Vous êtes sur la page 1sur 3

TP N°2 Kubernetes (monter un volume persistant contenant

un site web)
-Noureddine Grassa-
2019-2020

grassa@work-pc:~$ minikube start

---------------------------------Monter votre site web sur le cluster minikube----------------------

grassa@work-pc:~$ minikube mount /website:/website

-------------------------------------Création d’un volume persistant avec un fichier YAML ----------


Le volume persistant utilise un fichier ou un répertoire sur minikube pour émuler un
stockage connecté au réseau.
Le fichier de configuration spécifie que le volume se trouve dans /website sur le nœud du
cluster. La configuration spécifie également une taille de 10 gibioctets.
Il définit le nom StorageClass manual du PersistentVolume, qui sera utilisé pour lier les
requêtes PersistentVolumeClaim à ce PersistentVolume.

::::::::::::::
pv-volume.yaml
::::::::::::::
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/website"

grassa@work-pc:~$ kubectl apply -f pv-volume.yaml


persistentvolume/task-pv-volume created

grassa@work-pc:~$ kubectl get pv task-pv-volume


NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
task-pv-volume 10Gi RWO Retain Available manual 16s

-----------------------------Création d’un Volume Persistant Claim avec YAML----------------------


Les pods utilisent PersistentVolumeClaims pour demander un stockage physique. Dans ce
cas, vous allez créer un PersistentVolumeClaim qui demande un volume d'au moins trois
gibioctets pouvant fournir un accès en lecture-écriture à au moins un nœud.
::::::::::::::
pv-claim.yaml
::::::::::::::
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi

grassa@work-pc:~$ kubectl apply -f pv-claim.yaml


persistentvolumeclaim/task-pv-claim created
grassa@work-pc:~$ kubectl get pvc task-pv-claim
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
task-pv-claim Bound task-pv-volume 10Gi RWO manual 33s

--------------------------------Création d’un pod contenant nginx avec YAML-------------------------


Maintenant que le PersistentVolumeClaim est lié à votre PersistentVolume,l'étape suivante
consiste à créer un pod qui utilise votre PersistentVolumeClaim comme volume.Là ou on
va monter /website qui se trouve sur le volume persistant vers /usr/share/nginx/html du
pod

::::::::::::::
pv-pod.yaml
::::::::::::::
apiVersion: v1
kind: Pod
metadata:
labels:
run: task-pv-pod
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
grassa@work-pc:~$ kubectl apply -f pv-pod.yaml
pod/task-pv-pod created
grassa@work-pc:~$ kubectl get pod task-pv-pod
NAME READY STATUS RESTARTS AGE
task-pv-pod 1/1 Running 0 22s

--------------------------------------Créer un service LoadBalancer pour ce pod------------------------

grassa@work-pc:~$ kubectl expose pod task-pv-pod --name taskweb-80 --type LoadBalancer


--port 80 --protocol TCP
service/taskweb-80 exposed
grassa@work-pc:~$ minikube service taskweb-80 --url
http://192.168.39.44:30729
grassa@work-pc:~$ curl http://192.168.39.44:30729
bonjour je suis un site web externe

-------------------------------------------------------Nettoyer avant de sortir---------------------------------


grassa@work-pc:~$ kubectl delete pods --all
pod "task-pv-pod" deleted
grassa@work-pc:~$ kubectl delete services --all
service "kubernetes" deleted
service "taskweb-80" deleted
grassa@work-pc:~$ kubectl delete pvc --all
persistentvolumeclaim "task-pv-claim" deleted
grassa@work-pc:~$ kubectl delete pv --all
persistentvolume "task-pv-volume" deleted
grassa@work-pc:~$ minikube stop

Vous aimerez peut-être aussi