{{tag>kubernetes volumens volumenes pv pvc}} ===== 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 ==== * https://github.com/ricardoandre97/k8s-resources/tree/master/volumes