【问题标题】:Persist data for MySQL pod using Persistent Volume through cluster restarts通过集群重启使用 Persistent Volume 持久化 MySQL pod 的数据
【发布时间】:2020-10-16 15:38:37
【问题描述】:

我正在尝试在 Kubernetes 上部署 MySQL 并希望保留数据。我目前能够在 pod 的整个生命周期内持久保存数据(kubectl delete 然后 kubectl create)。但是,我无法通过集群重启来保留数据。知道为什么会这样吗?

persistent-volume.yml

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

persistent-volume-claim.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```

【问题讨论】:

  • 你在运行什么 kubernetes?你如何重启你的集群
  • @Matt 我正在为 Windows 的 Kubernetes 集群使用 Docker Desktop。我只是重新启动应用程序。

标签: mysql kubernetes persistent-volumes


【解决方案1】:

这个案例在this official guide中有很好的描述,尤其是在关于Create PersistentVolumeClaims and PersistentVolumes的段落中:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-25
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多