在某些情况下,我正在尝试在 kubernetes 上构建一个登台/测试系统,首先在集群上部署一个 mariadb,其中包含一些模式和数据。我有一个来自 prod 的 trunkated / clensed db dump 来帮助我解决这个问题。让我们调用该文件:dbdump.sql,它位于路径 /home/rjosh/database/script/ 的本地框中。经过大量研究,这里是我的 yaml 文件的样子:
apiVersion: v1
kind: PersistentVolume
metadata:
name: m3ma-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 30Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: m3ma-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
---
apiVersion: v1
kind: Service
metadata:
name: m3ma
spec:
ports:
- port: 3306
selector:
app: m3ma
clusterIP: None
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: m3ma
spec:
selector:
matchLabels:
app: m3ma
strategy:
type: Recreate
template:
metadata:
labels:
app: m3ma
spec:
containers:
- image: mariadb:10.2
name: m3ma
env:
# Use secret in real usage
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: m3ma
volumeMounts:
- name: m3ma-persistent-storage
mountPath: /var/lib/mysql/
- name: m3ma-host-path
mountPath: /docker-entrypoint-initdb.d/
volumes:
- name: m3ma-persistent-storage
persistentVolumeClaim:
claimName: m3ma-pv-claim
- name: m3ma-host-path
hostPath:
path: /home/smaikap/database/script/
type: Directory
MariaDB 实例即将启动,但未包含 /home/rjosh/database/script/dbdump.sql 中存在的架构和数据。
基本上,安装不工作。如果我连接到 pod 并检查 /docker-entrypoint-initdb.d/ 什么都没有。我该怎么做?
更多细节。目前,我正在 minikube 上对其进行测试。但是,很快它就必须在 GKE 集群上运行。查看文档,hostPath 不是 GKE 的选择。那么,这样做的正确方法是什么?