Como criar pvc usando pv existente?

Como criar pvc usando pv existente?

Excluí o pvc em minha implantação do mediawiki kubernetes e não consigo colocar a implantação de volta no estado de execução porque ela não pode ser reconectada ao pv existente.

Se eu instalá-lo do zero, ele apenas criará um novo pvc com um novo pv. Quero usar um pv existente (que contém todos os meus dados) ao reinstalar.

  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: ""

Presumo que posso apenas usar o parâmetro existenteClaim: e colocar o nome do pvc.

Porém, não sei criar um pvc do zero.

Alguém pode me ajudar a descobrir como criar um pvc usando um pv existente que está desconectado atualmente? Contanto que eu não exclua esse pv, espero que meus dados estejam seguros.

Isso está no cluster Linode Kubernetes, se for importante.

Responder1

Podemos criar um novo pvc usando o pv existente sem qualquer perda de dados (o PV deve existir, normalmente existirá se a política de recuperação da classe de armazenamento for Retain)

Passo 1 :certifique-se de que o pv seja movido para o estado Disponível, que será alterado após a exclusão do PVC.

kubectl get pv <pv name>

Lá você pode ver que ainda tem referências do antigo Namespace na coluna CLAIM.

Edite o PV ( kubectl edit pv <pv name>) e remova a parte spec.claimRef. A reivindicação PV não seria definida e na coluna de reivindicação você verifica que será alterada para branco

Em seguida, use o PV criando o novo PVC conforme abaixo.

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

Você pode encontrar mais informações nesteblog.

informação relacionada