我想在容器的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
答案 0 :(得分:1)
编写脚本并将其附加到发布开始挂钩。验证数据库是否存在并在线。然后继续运行sql命令以创建所需的数据