如何在kubernetes中使用初始数据创建mysql容器?

时间:2019-03-14 19:07:55

标签: mysql kubernetes containers devops

我想在容器的MySQL上设置初始数据(创建数据库和表的脚本文件)。我还有另一个Pod,它将与mysql pod对话并在表中插入数据。如果删除mysql pod,它将创建另一个pod,但先前插入的数据丢失。我不想丢失在删除pod之前插入的数据。如何完成此操作? 我已经创建了pv和pvc,删除了pod后数据丢失了。

kind: PersistentVolume
apiVersion: v1
metadata:
  name: mysql-initdb-pv-volume
  labels:
    type: local
    app: mysql
spec:
  storageClassName: manual
  capacity:
    storage: 1Mi
  accessModes:
    - ReadOnlyMany
  hostPath:
    path: "/home/path to script file/script"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-initdb-pv-claim
  labels:
    app: mysql
spec:
  storageClassName: manual
  accessModes:
    - ReadOnlyMany
  resources:
    requests:
      storage: 1Mi

这是deployment.yaml

       volumeMounts:
    - name: mysql-initdb
      mountPath: /docker-entrypoint-initdb.d
  volumes:
  - name: mysql-initdb
    persistentVolumeClaim:
      claimName: mysql-initdb-pv-claim

1 个答案:

答案 0 :(得分:1)

编写脚本并将其附加到发布开始挂钩。验证数据库是否存在并在线。然后继续运行sql命令以创建所需的数据