无法从 mangodb pod 写入持久卷

无法从 mangodb pod 写入持久卷

我正在尝试使用 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 中的数据仍会保留

相关内容