meta data de esta página

Volumes

Definiciones

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

Por ejemplo

kubectl get pvc 
kubectl get pv 

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

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: {}
    
 

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

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

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