¿Cómo crear PVC utilizando PV existente?

¿Cómo crear PVC utilizando PV existente?

Eliminé el pvc en mi implementación de mediawiki kubernetes y no puedo volver a ejecutar la implementación porque no se puede volver a conectar al pv existente.

Si lo instalo nuevo, simplemente crea un nuevo PVC dentro de un nuevo PV. Quiero usar un pv existente (que tiene todos mis datos) cuando lo reinstale.

  primary:
    ## Enable persistence using Persistent Volume Claims
    ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
    ## @param mariadb.primary.persistence.enabled Enable database persistence using PVC
    ## @param mariadb.primary.persistence.storageClass PVC Storage Class
    ## @param mariadb.primary.persistence.accessModes Persistent Volume Access Mode
    ## @param mariadb.primary.persistence.size Database Persistent Volume Size
    ## @param mariadb.primary.persistence.hostPath Host mount path for MariaDB volume
    ## @param mariadb.primary.persistence.existingClaim Enable persistence using an existing PVC
    ##
    persistence:
      enabled: true
      ## mariadb data Persistent Volume Storage Class
      ## If defined, storageClassName: <storageClass>
      ## If set to "-", storageClassName: "", which disables dynamic provisioning
      ## If undefined (the default) or set to null, no storageClassName spec is
      ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
      ##   GKE, AWS & OpenStack)
      ##
      storageClass: ""
      accessModes:
        - ReadWriteOnce
      size: 8Gi
      ## Set path in case you want to use local host path volumes (not recommended in production)
      ##
      hostPath: ""
      ## Use an existing PVC
      ##
      existingClaim: ""

Supongo que puedo usar el parámetro existenteClaim: e ingresar el nombre del pvc.

Sin embargo, no sé cómo crear un pvc desde cero.

¿Alguien puede ayudarme a descubrir cómo crear un PVC utilizando un PV existente que actualmente no está conectado? Mientras no borre ese pv, espero que mis datos estén seguros.

Esto está en el clúster Linode Kubernetes si es importante.

Respuesta1

Podemos crear un nuevo PVC utilizando el PV existente sin pérdida de datos (el PV debe existir, normalmente existirá si la política de recuperación de la clase de almacenamiento es Retener).

Paso 1 :asegúrese de que el pv se mueva al estado Disponible, que se cambiará después de eliminar el PVC.

kubectl get pv <pv name>

Allí puede ver que todavía tiene referencias del antiguo espacio de nombres en la columna RECLAMACIÓN.

Edite el PV ( kubectl edit pv <pv name>) y elimine la parte spec.claimRef. El reclamo de PV no estaría configurado y en la columna del reclamo usted verifica que se cambiará a espacio en blanco.

Luego use el PV creando el nuevo PVC como se muestra a continuación.

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name:test-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 16Gi
  volumeName: "<pv name>"

Puedes encontrar más información en esteBlog.

información relacionada