Pod et hostpath
Cet exercice vous guide à travers la création d’un Pod Kubernetes qui utilise un volume hostPath pour monter un répertoire du nœud hôte dans le conteneur. Nous allons ensuite créer un fichier dans ce volume et vérifier son existence à l’intérieur du conteneur.
Prérequis
- Un cluster Kubernetes fonctionnel (par exemple, un cluster
kind). kubectlconfiguré pour interagir avec votre cluster.
Étapes
- Créer le Pod avec un volume hostPath :
Créez un fichier YAML nommé 5-5-kuard-pod-vol.yaml avec le contenu suivant :
apiVersion: v1
kind: Pod
metadata:
name: kuard-pod-hostpath
spec:
volumes:
- name: hostpath-vol
hostPath:
path: /var/lib/kuard
containers:
- image: gcr.io/kuar-demo/kuard-amd64:1
name: kuard
volumeMounts:
- mountPath: /data
name: hostpath-volCe fichier définit un Pod nommé kuard-pod-hostpath qui utilise un volume hostPath. Le répertoire /var/lib/kuard du nœud hôte est monté dans le conteneur à /data.
Appliquez le fichier YAML pour créer le Pod.
- Identifier le noeud sur lequel le pod est déployé:
- Accéder au nœud hôte et créer un fichier :
Utilisez docker exec pour accéder au nœud hôte (remplacez kind-worker3 par le nom de votre nœud).
Créez un fichier nommé my-file dans le répertoire /var/lib/kuard.
Quittez le shell du nœud hôte.
-
Vérifier l’existence du fichier dans le Pod :
Accédez au shell du conteneur dans le Pod.
Vérifiez l’existence du fichier dans le répertoire monté /data :
Vous devriez voir le contenu du fichier : Hello from hostPath.
Vérifiez également l’existence du fichier dans le répertoire source du noeud /var/lib/kuard.
Vous devriez voir le même contenu.
Quittez le shell du conteneur :
Solutions
- Le fichier
my-filecréé sur le nœud hôte est visible dans le Pod car le répertoire/var/lib/kuardest monté dans le conteneur à/dataen utilisanthostPath. - Toute modification apportée au fichier sur le nœud hôte est immédiatement reflétée dans le conteneur, et vice versa.
- L’utilisation de
hostPathpermet aux conteneurs d’accéder directement au système de fichiers du nœud hôte, ce qui peut être utile pour certaines applications, mais doit être utilisé avec prudence en raison des risques de sécurité. /var/lib/kuardappartient àrootcar il n’existait pas préalablement à la création du pod. Le container runtime a donc du le créer et a utilisé les droitsrootpar défaut.