我正在尝试在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
答案 0 :(得分:0)
这种情况在this official guide中有很好的描述,尤其是在有关Create PersistentVolumeClaims and PersistentVolumes的段落中:
警告:在本地群集中,默认的
StorageClass
使用hostPath
供应商。hostPath
卷仅适用于开发和 测试。使用hostPath
卷,您的数据将驻留在节点上的/tmp
中 Pod已调度到节点上,并且不会在节点之间移动。如果是豆荚 死亡并被调度到集群中的另一个节点,或者该节点是 重新启动后,数据丢失。
HostPath
仅用于单节点测试。您想使用其他类型的PersisstentVolume
。
您可以找到有关PersistentVolumes
类型here的更多详细信息。