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>"
詳細はこちらをご覧くださいブログ。