我想创建一个带有POD的复制控制器,它将具有PVC(持久卷声明)。我的PVC将使用NFS存储用于PV(持久卷)。
一旦POD运行,RC将保持POD运行。在这种情况下,当
时,POD中的数据是可用/持久的答案 0 :(得分:2)
这在很大程度上取决于您如何定义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再次重复使用它,因此它应该在你提到的所有三种情况下都能存活
答案 1 :(得分:0)
取决于您的提供商/供应商,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