既存の PV を使用して PVC を作成するにはどうすればよいでしょうか?

既存の PV を使用して PVC を作成するにはどうすればよいでしょうか?

mediawiki kubernetes デプロイメントの PVC を削除しましたが、既存の PV に再接続できないため、デプロイメントを実行状態に戻すことができません。

新規にインストールすると、新しい PV 内に新しい PVC が作成されるだけです。再インストールするときに、既存の PV (すべてのデータを含む) を使用したいと思います。

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

existingClaim: パラメータを使用して PVC 名を入力できると想定しています。

しかし、PVC をゼロから作成する方法がわかりません。

誰か、現在接続されていない既存の PV を使用して PVC を作成する方法を教えてくれませんか? その PV を削除しない限り、データは安全であることを願っています。

重要であれば、これは Linode Kubernetes クラスター上にあります。

答え1

既存の PV を使用して、データ損失なしで新しい PVC を作成できます (PV が存在する必要があります。通常、ストレージクラスの再利用ポリシーが Retain の場合は存在します)

ステップ1 :PVC を削除した後に PV が使用可能状態に変更されることを確認します。

kubectl get pv <pv name>

ここで、CLAIM 列に古い名前空間からの参照がまだ残っていることがわかります。

PV ( kubectl edit pv <pv name>) を編集し、spec.claimRef 部分を削除します。PV クレームは設定解除され、クレーム列で空白に変更されることを確認します。

次に、以下のように新しい PVC を作成して PV を使用します。

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

詳細はこちらをご覧くださいブログ

関連情報