https://www.puzzle.ch/de/blog/articles/2021/08/10/manual-kubernetes-persistentvolumes-migration


Persistent Volume

PersistentVolume são recursos de cluster que existem independentemente dos pods. Isso significa que o disco e os dados representados por um PersistentVolume continuam existindo enquanto o cluster é alterado e os pods são excluídos e recriados.

Os recursos PersistentVolume são compatíveis com os seguintes meios de acesso:

  • ReadWriteOnce: o volume pode ser montado como leitura-gravação por um único nó.
  • ReadOnlyMany: o volume pode ser montado somente para leitura por muitos nós.
  • ReadWriteMany: o volume pode ser montado como leitura-gravação por muitos nós. Os recursos PersistentVolume compatíveis com discos permanentes do Compute Engine não são compatíveis com esse modo de acesso.

Se você quiser evitar a exclusão de discos permanentes provisionados dinamicamente, defina a política de recuperação do recurso PersistentVolume ou do recurso StorageClass como Retain.

Nesse caso, você será cobrado pelo tempo que o disco permanente existir, mesmo que não haja nenhum PersistentVolumeClaim consumindo-o.

Usar PersistentDisk preexistentes como PersistentVolumes

O disco permanente precisa estar na mesma zona que os nós do cluster.

Um Persistent Disk pode ser criado através da api gcloud:

gcloud compute disks create pd-test-persistent \
  --size 10G \
  --type pd-standard \
  --zone us-east4-c
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv
spec:
  storageClassName: "test"
  capacity:
    storage: 10G
  accessModes:
    - ReadWriteOnce
  claimRef:
    namespace: default
    name: pv-claim
  gcePersistentDisk:
    pdName: pd-test-persistent
    fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim
spec:
  storageClassName: "test"
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10G
---
kind: Pod
apiVersion: v1
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
       claimName: pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/data"
          name: task-pv-storage

https://cloud.google.com/compute/docs/disks/add-persistent-disk


🌱 Back to Garden