Como usar discos permanentes preexistentes como PersistentVolumes

Nesta página, explicamos como criar um PersistentVolume usando um disco permanente atual do Compute Engine preenchido com dados e como usar o PersistentVolume em um pod.

Como criar o PersistentVolume

Se você já tiver um disco permanente de 500 GB chamado pd-name, o arquivo de manifesto abaixo descreve um PersistentVolume e um PersistentVolumeClaim correspondentes.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-demo
spec:
  storageClassName: ""
  capacity:
    storage: 500G
  accessModes:
    - ReadWriteOnce
  gcePersistentDisk:
    pdName: pd-name
    fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim-demo
spec:
  # It's necessary to specify "" as the storageClassName
  # so that the default storage class won't be used, see
  # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
  storageClassName: ""
  volumeName: pv-demo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 500G

Para criar o PersistentVolume e o PersistentVolumeClaim, use kubectl apply -f existing-pd.yaml.

Como usar o PersistentVolume em um pod

Após a existência de PersistentVolume e PersistentVolumeClaim no cluster, conceda aos contêineres de um pod acesso ao volume especificando valores para os campos volumeMounts.mountPath e volumeMounts.name do contêiner, como mostrado no exemplo a seguir:

kind: Pod
apiVersion: v1
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
       claimName: pv-claim-demo
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

Quando você aplica esse manifesto a um cluster, o pod é criado e o contêiner task-pv-container tem acesso ao volume no diretório /usr/share/nginx/html/.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Kubernetes Engine