[英]Persist data for MySQL pod using Persistent Volume through cluster restarts
我正在嘗試在 Kubernetes 上部署 MySQL 部署並希望保留數據。 我目前能夠在 pod 的整個生命周期中保留數據(kubectl delete 然后是 kubectl create)。 但是,我無法通過集群重新啟動來保留數據。 知道為什么會這樣嗎?
持久卷.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv-volume
spec:
storageClassName: hostpath
persistentVolumeReclaimPolicy: Retain
capacity:
storage: 100Mi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
持久卷聲明.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
storageClassName: hostpath
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
mysql-deployment.yml
kind: StatefulSet
metadata:
name: powerplus-db
spec:
serviceName: powerplus-db
selector:
matchLabels:
app: powerplus-db
template:
metadata:
labels:
app: powerplus-db
spec:
containers:
- name: powerplus-db
image: mysql:8.0.21
env:
- name: MYSQL_ROOT_PASSWORD
value: password
- name: MYSQL_DATABASE
value: powerplus
ports:
- containerPort: 3306
name: powerplus-db
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-persistent-storage
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim```
這種情況在本官方指南中有很好的描述,特別是在關於Create PersistentVolumeClaims 和 PersistentVolumes 的段落中:
警告:在本地集群中,默認
StorageClass
使用hostPath
配置程序。hostPath
卷僅適用於開發和測試。 使用hostPath
卷,您的數據位於 Pod 調度到的節點上的/tmp
,並且不會在節點之間移動。 如果 Pod 死亡並被調度到集群中的另一個節點,或者該節點重新啟動,則數據將丟失。
HostPath
僅用於單節點測試目的。 您想使用不同類型的PersisstentVolume
。 您可以在此處找到有關PersistentVolumes
類型的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.