我已经删除了我的部署中的pvc,并且我无法将部署恢复到运行状态,因为它无法重新连接到现有的pv。
如果我安装它新鲜,它只是创造了一个新的pvc与一个新的pv。当我重新安装时,我想使用一个现有的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集群上(如果重要的话)。
发布于 2022-12-02 09:34:56
我们可以使用现有的pv来创建一个新的pvc,而不需要任何数据损失(PV必须存在,如果存储的回收策略被保留,通常会存在PV)。
步骤-1 :确保pv被移动到可用状态,在删除PVC后该状态将被更改。
kubectl get pv <pv name>在这里,您可以看到,您仍然有来自旧Namespace的references列的引用。
编辑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>"您可以在此博客中找到更多信息。
https://serverfault.com/questions/1117063
复制相似问题