Containers armazenam dados no seu sistema de arquivos temporário que é redefinido toda vez que o container é reiniciar. Desenvolvedores precisam persistir dados além do ciclo de vida dos containers, Pods, node e cluster. Um exemplo típico são logs armazenados em bancos de dados.

Kubernetes oferece o conceito de Volume para implementar este caso de uso. Um Pod monta o Volume em um determinado path do container e qualquer dado escrito neste path será persistido além do ciclo de vida do container. O Kubernetes ainda oferece diversas outras opções de Volumes para atender diferentes necessidades.

PersistentVolumes armazenam os dados mesmo que ocorra o reinicio de um Pod, cluster ou node. Ester objetos são desacoplados do ciclo de vida do Pod e representados como uma primitiva do Kubernetes. Os PersistentVolumeClaims abstraem o hardware representado pelo PersistentVolume e agem como um intermediário entre Pod e PersistentVolume.