如何解决通过集群重启使用持久卷为MySQL pod持久化数据
我正在尝试在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
解决方法
这种情况在this official guide中有很好的描述,尤其是在有关Create PersistentVolumeClaims and PersistentVolumes的段落中:
警告:在本地群集中,默认的
StorageClass
使用hostPath
供应商。hostPath
卷仅适用于开发和 测试。使用hostPath
卷,您的数据将驻留在节点上的/tmp
中 Pod已调度到节点上,并且不会在节点之间移动。如果是豆荚 死亡并被调度到集群中的另一个节点,或者该节点是 重新启动后,数据丢失。
HostPath
仅用于单节点测试。您想使用其他类型的PersisstentVolume
。
您可以找到有关PersistentVolumes
类型here的更多详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。