meta data de esta página

Volumes

Definiciones

  • pv = PersistentVolume (Volumen Persistente)
  • pvc = PersistentVolumeClaim (Solicitud de Volumen Persistente)

Por ejemplo <sxh>kubectl get pvc </sxh> <sxh>kubectl get pv </sxh>

Tipos

Tenermos varios tipos:

  • emptyDir
  • hostPath
  • Cloud

EmpyDir

Crea un directorio vacio en el pod y que estara disponible mientras exista el pod. Independiente de que los containers de dentro del pod se destruyan, recreen, reinicien , etc

Ejemplo <sxh yaml> apiVersion: v1 kind: Pod metadata:

name: test-pd

spec:

containers:
- image: nginx:alpine
  name: test-container
  volumeMounts:
  - mountPath: /var/log/nginx         #indica el directorio que vamos a montar como un volumen emptyDir
    name: vol
volumes:
- name: vol
  emptyDir: {}
  

</sxh>

hostPath

Crea el volumen en un directorio del nodo donde corre el pod

Ojo ya que al estar el volumen asociado al nodo donde corre el pod, si este cambia de nodo dejaría de poder acceder

<sxh yaml> apiVersion: v1 kind: PersistentVolume metadata:

name: task-pv-volume
labels:
  type: local

spec:

storageClassName: manual
capacity:
  storage: 10Gi
accessModes:
  - ReadWriteOnce
hostPath:
  path: "/test"

— apiVersion: v1 kind: PersistentVolumeClaim metadata:

name: task-pv-claim

spec:

storageClassName: manual
accessModes:
  - ReadWriteOnce
resources:
  requests:
    storage: 10Gi

</sxh>

NFS

Kubernetes permite montar volúmenes NFS existentes en un pod. Los volúmenes NFS son volúmenes externos al cluster Kubernetes y son persistentes, su contenido se mantiene después de la eliminación de los pods que lo tengan montado.

Cloud

  • Openstack Cinder

Referencias