如何将临时数据存储到Kubernetes Cluster?

时间:2019-03-20 03:03:19

标签: kubernetes azure-kubernetes

我想存储诸如 json对象之类的临时数据,并且可以在给定kubernetes集群中的当前容器与任何新创建的容器之间共享。

我想将其用于检查点目的,我想与当前的Pod以及集群中引入的任何新Pod分享。即使所有吊舱被误删除,我也无法出于任何原因丢失数据。

如果我可以将其隔离到特定的名称空间,那也很有帮助。

如何制作持久数据以在Pod中存储和共享?

2 个答案:

答案 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类型。