我想存储诸如 json对象之类的临时数据,并且可以在给定kubernetes集群中的当前容器与任何新创建的容器之间共享。
我想将其用于检查点目的,我想与当前的Pod以及集群中引入的任何新Pod分享。即使所有吊舱被误删除,我也无法出于任何原因丢失数据。
如果我可以将其隔离到特定的名称空间,那也很有帮助。
如何制作持久数据以在Pod中存储和共享?
答案 0 :(得分:3)
您可以在kubernetes中使用概念调用PV和PVC。
kind: PersistentVolume
apiVersion: v1
metadata:
name: sql-pv-volume
labels:
type: local
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
persistentVolumeReclaimPolicy: Retain
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sql-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
它将在您的kubernetes集群中创建pvc,您可以将其附加到Pod。
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: sql-pv-claim
如果您的吊舱将被删除,则PVC中也将有数据
答案 1 :(得分:0)
您可以为此使用PersistentVolume和PersistentVolumeClaim。这是k8s为持久数据提供的解决方案。将所有不想写入的数据写到PVC中,即使所有pod都死了。另外,写入到PV的数据也可以由pod作为volumeMounts共享。有多种创建PV和PVC的方法,例如hostPath,NFS等。您可以查看k8s文档了解更多详细信息以及适合您的用例的PV类型。