如何将临时数据存储到 Kubernetes 集群?
How to store temporary data to Kubernetes Cluster?
我想存储临时数据,例如 json 对象 并可在当前 pods 和任何新创建的 pods 之间共享给定 kubernetes 集群。
我想将其用于检查点目的,我想与当前 pods 和集群中引入的任何新 pods 共享。即使所有 pods 被错误删除,我也不能以任何理由丢失数据。
如果我可以将它隔离到特定的命名空间,那也很有帮助。
如何制作持久数据以在 pods 之间存储和共享?
您可以为此目的使用 PersistentVolume 和 PersistentVolumeClaim。这是k8s为持久化数据提供的解决方案。将所有数据写入您不想丢失的 PVC,即使所有 pod 都死了。写入 PV 的数据也可以作为 volumeMounts 由 pod 共享。您可以通过多种方式创建 PV 和 PVC,例如 hostPath、NFS 等。您可以查看 k8s 文档了解更多详细信息以及适合您的用例的 PV 类型。
可以在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,您可以将其附加到 pods。
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: sql-pv-claim
如果您的 pod 将被删除,那么数据也会存在于 PVC 中
我想存储临时数据,例如 json 对象 并可在当前 pods 和任何新创建的 pods 之间共享给定 kubernetes 集群。
我想将其用于检查点目的,我想与当前 pods 和集群中引入的任何新 pods 共享。即使所有 pods 被错误删除,我也不能以任何理由丢失数据。
如果我可以将它隔离到特定的命名空间,那也很有帮助。
如何制作持久数据以在 pods 之间存储和共享?
您可以为此目的使用 PersistentVolume 和 PersistentVolumeClaim。这是k8s为持久化数据提供的解决方案。将所有数据写入您不想丢失的 PVC,即使所有 pod 都死了。写入 PV 的数据也可以作为 volumeMounts 由 pod 共享。您可以通过多种方式创建 PV 和 PVC,例如 hostPath、NFS 等。您可以查看 k8s 文档了解更多详细信息以及适合您的用例的 PV 类型。
可以在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,您可以将其附加到 pods。
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: sql-pv-claim
如果您的 pod 将被删除,那么数据也会存在于 PVC 中