POD崩溃时持久卷声明中的容器数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POD崩溃时持久卷声明中的容器数据相关的知识,希望对你有一定的参考价值。
我想创建一个带有POD的复制控制器,它将具有PVC(持久卷声明)。我的PVC将使用NFS存储用于PV(持久卷)。
一旦POD运行,RC将保持POD的运行。在这种情况下,POD中的数据是可用/持久的
- 删除命令停止/删除POD,RC重新启动它?这意味着Kubernetes没有关闭。在这种情况下,新POD可以从同一卷中获得相同的数据吗?
- POD停止,Kubernetes进程并重新启动节点。然而,NFS存储仍然作为PV附加。
- 一个新的PV连接到Kubernetes并且旧的PV被拆卸。
答案
这在很大程度上取决于您如何定义PV / PVC。根据我的经验,使用基于NFS的PV非常容易在pod重新创建删除之间保留数据。我采用以下方法来处理多个pod共享的NFS卷。
卷:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pvname
spec:
capacity:
storage: 1Mi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: <nfs IP>
path: <nfs path>
要求 :
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvcname
spec:
volumeName: pvname
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Mi
这确保了无论我在k8s中删除了什么,我都可以在NFS服务器上的已知路径上返回我的数据,并通过在k8上重新创建PV / PVC / POD再次重用它,因此它应该能够在你提到的所有三种情况下生存。
另一答案
根据您的提供商/供应商,persistentVolumeReclaimPolicy: Retain
不一定是“回来找我!”处理。根据Kubernetes文档,此策略旨在防止删除卷,以便您以后可以恢复数据(在Kubernetes之外)。
以下是此政策的用途:
$ kubectl get pvc,pv
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/nfs-server Bound nfs-server 100Gi RWX 5d
persistentvolumeclaim/nfs-server-wp-k8specs Bound nfs-server-wp-k8specs 100Gi RWX 2d
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/nfs-server 100Gi RWX Retain Bound default/nfs-server 5d
persistentvolume/nfs-server-wp-k8specs 100Gi RWX Retain Bound default/nfs-server-wp-k8specs 2d
以上是关于POD崩溃时持久卷声明中的容器数据的主要内容,如果未能解决你的问题,请参考以下文章