通过集群重启使用持久卷为MySQL pod持久化数据

时间:2020-10-16 15:38:37

标签: mysql kubernetes persistent-volumes

我正在尝试在Kubernetes上部署MySQL部署,并希望保留数据。我目前能够在pod的整个生命周期中保留数据(先删除Kubectl,然后创建Kubectl)。但是,我无法通过群集重新启动来保留数据。知道为什么会这样吗?

persistent-volume.yml

exception

持久体积声明.yml

apiVersion: v1
kind: PersistentVolume
metadata:
 name: mysql-pv-volume
spec:
 storageClassName: hostpath
 persistentVolumeReclaimPolicy: Retain
 capacity:
  storage: 100Mi
 accessModes:
  - ReadWriteOnce
 hostPath:
  path: "/mnt/data"

mysql-deployment.yml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: mysql-pv-claim
spec:
 storageClassName: hostpath
 accessModes:
  - ReadWriteOnce
 resources:
  requests:
   storage: 100Mi

1 个答案:

答案 0 :(得分:0)

这种情况在this official guide中有很好的描述,尤其是在有关Create PersistentVolumeClaims and PersistentVolumes的段落中:

警告:在本地群集中,默认的StorageClass使用hostPath 供应商。 hostPath卷仅适用于开发和 测试。使用hostPath卷,您的数据将驻留在节点上的/tmp中 Pod已调度到节点上,并且不会在节点之间移动。如果是豆荚 死亡并被调度到集群中的另一个节点,或者该节点是 重新启动后,数据丢失。

HostPath仅用于单节点测试。您想使用其他类型的PersisstentVolume。 您可以找到有关PersistentVolumes类型here的更多详细信息。