Introducció

En Kubernetes, els volums són una manera d'emmagatzemar dades que poden ser utilitzades per un o més pods. A diferència dels volums efímers que desapareixen quan el pod es destrueix, els volums en Kubernetes poden persistir més enllà del cicle de vida d'un pod. Això és especialment útil per a aplicacions que necessiten emmagatzemar dades de manera persistent.

Conceptes Clau

  • Volum: Un directori accessible per als contenidors d'un pod.
  • Volum Persistents (PV): Recursos de l'API de Kubernetes que representen l'emmagatzematge proporcionat per un administrador.
  • Reclamació de Volum Persistent (PVC): Una petició d'emmagatzematge per part d'un usuari.

Tipus de Volums

Kubernetes suporta diversos tipus de volums, cadascun amb les seves pròpies característiques i usos. Alguns dels tipus més comuns són:

  • emptyDir: Un volum que s'inicialitza com un directori buit. Es crea quan es crea el pod i es manté fins que el pod es destrueix.
  • hostPath: Mapa un directori o fitxer del node host al pod.
  • nfs: Utilitza un sistema de fitxers de xarxa (NFS) per a l'emmagatzematge.
  • persistentVolumeClaim: Utilitza una reclamació de volum persistent per muntar un volum persistent.

Exemple Pràctic

A continuació, es mostra un exemple de com definir un volum emptyDir en un pod.

Definició del Pod amb un Volum emptyDir

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    volumeMounts:
    - mountPath: /usr/share/nginx/html
      name: html-volume
  volumes:
  - name: html-volume
    emptyDir: {}

Explicació del Codi

  • apiVersion: La versió de l'API de Kubernetes.
  • kind: El tipus de recurs, en aquest cas, un Pod.
  • metadata: Informació sobre el pod, com ara el nom.
  • spec: L'especificació del pod.
    • containers: Una llista de contenidors que s'executaran en el pod.
      • name: El nom del contenidor.
      • image: La imatge del contenidor.
      • volumeMounts: Una llista de volums que es muntaran en el contenidor.
        • mountPath: El camí dins del contenidor on es muntarà el volum.
        • name: El nom del volum.
    • volumes: Una llista de volums que es definiran en el pod.
      • name: El nom del volum.
      • emptyDir: Un volum que s'inicialitza com un directori buit.

Exercici Pràctic

Objectiu

Crear un pod que utilitzi un volum hostPath per muntar un directori del node host al pod.

Instruccions

  1. Crea un fitxer YAML anomenat hostpath-pod.yaml.
  2. Defineix un pod que utilitzi un volum hostPath per muntar el directori /data del node host al camí /mnt/data dins del contenidor.
  3. Utilitza la imatge busybox i executa el comandament sleep 3600 per mantenir el contenidor en execució.

Solució

apiVersion: v1
kind: Pod
metadata:
  name: hostpath-pod
spec:
  containers:
  - name: busybox-container
    image: busybox
    command: ['sh', '-c', 'sleep 3600']
    volumeMounts:
    - mountPath: /mnt/data
      name: hostpath-volume
  volumes:
  - name: hostpath-volume
    hostPath:
      path: /data
      type: Directory

Explicació del Codi

  • command: El comandament que s'executarà en el contenidor (sleep 3600).
  • hostPath: Defineix un volum que mapeja un directori del node host (/data) al pod.

Resum

En aquesta secció, hem après què són els volums en Kubernetes i com es poden utilitzar per emmagatzemar dades de manera persistent. Hem vist diferents tipus de volums i hem treballat amb exemples pràctics per entendre com definir i utilitzar volums en un pod. En la següent secció, explorarem els volums persistents i les reclamacions de volums persistents per a una gestió d'emmagatzematge més avançada.

Curs de Kubernetes

Mòdul 1: Introducció a Kubernetes

Mòdul 2: Components Bàsics de Kubernetes

Mòdul 3: Gestió de Configuració i Secrets

Mòdul 4: Xarxes en Kubernetes

Mòdul 5: Emmagatzematge en Kubernetes

Mòdul 6: Conceptes Avançats de Kubernetes

Mòdul 7: Monitorització i Registre

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2024. Tots els drets reservats