如何使用現有的 pv 建立 pvc?

如何使用現有的 pv 建立 pvc?

我已經刪除了 mediawiki kubernetes 部署上的 pvc,並且無法使部署恢復到運行狀態,因為它無法重新附加到現有的 pv。

如果我全新安裝它,它只會在新的 pv 中建立一個新的 pvc。我想在重新安裝時使用現有的光伏(其中包含我的所有數據)。

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

我假設我可以只使用現有的聲明:參數並輸入 pvc 名稱。

但是,我不知道如何從頭開始建立 PVC。

有人可以幫我弄清楚如何使用目前未連接的現有 pv 來建立 pvc 嗎?只要我不刪除該 pv,我希望我的資料是安全的。

如果重要的話,這是在 Linode Kubernetes 叢集上。

答案1

我們可以使用現有的pv來建立一個新的pvc,而不會遺失任何資料(PV必須存在,如果storageclass的回收策略是Retain,通常會存在)

步驟1 :確保 pv 進入可用狀態,該狀態將在刪除 PVC 後變更。

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

您可以在此找到更多信息部落格

相關內容