让我把你放在上下文中。我得到了pod,它的配置看起来像这样:
spec:
nodeSets:
- name: default
count: 3
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: repd-ssd-xfs我也有我的StorageClass
apiVersion: ...
kind: StorageClass
metadata:
name: repd-ssd-xfs
parameters:
type: pd-ssd
fsType: xfs
replication-type: regional-pd
zones: us-central1-a, us-central1-b, us-central1-f
reclaimPolicy: Retain
volumeBindingMode: Immediate我删除了pod的命名空间,然后再次应用,我注意到pod使用的pvc发生了变化,并绑定到一个新的pvc,该pod使用的最后一个pvc的状态为released。我的问题是,有什么方法可以指定pod使用我的旧pvc吗?StorageClass的策略是Retain,但这意味着我仍然可以使用状态为released的聚氯乙烯?
发布于 2020-02-11 13:39:30
如果是部署或独立的pod,您可以在pod规范中显式指定持久卷声明名称,如下所示:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim但是,如果它是StatefulSet,它将在每次pod重新启动时自动连接到相同的PVC。希望这能有所帮助。
发布于 2020-02-11 18:08:40
除了@shashank tyagi提供的答案之外。
请查看文档Persistent Volumes和Retain部分,您可以找到:
当PersistentVolumeClaim被删除时,该PersistentVolume仍然存在,该卷被认为是“释放的”。但它还不能用于另一个申请,因为之前的索赔人的数据保留在该卷上。管理员可以通过以下步骤手动回收该卷。
存储资产定义。
查看文档Persistent volumes with Persistent Disks和这个示例How to set ReclaimPolicy for PersistentVolumeClaim可能会很有帮助。
UPDATE请查看文章Persistent Volume Claim for StatefulSet。
https://stackoverflow.com/questions/60160156
复制相似问题