我正在尝试使用 kubernetes 创建一个持久的 mongo 数据库
这是我的配置
持久卷 yaml 文件:
kind: PersistentVolume
apiVersion: v1
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/home/moses/test"
持久卷声明 yaml 文件
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: task-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
mongo数据库部署yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 27017
volumeMounts:
- mountPath: "/data"
name: task-pv-storage
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
问题是容器的数据目录(mango 的默认目录)中的文件没有被复制到卷(文件夹 configdb 和 db 已被复制但它们是空的)
kubectl 版本
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:22:21Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
用于卷的目录具有 777 权限
我的集群是在 ubuntu 上使用 kubeadm 设置的,我也在使用 mongo docker 镜像(我没有自己构建一个)
答案1
如果您更改 mongo 数据库 yaml 文件,问题将得到解决
- 安装路径:“/data”
到
- mountPath:“/data/db”
即使你删除部署并重新创建,mongodb 中的数据仍会保留