【发布时间】:2018-05-13 00:16:06
【问题描述】:
我正在尝试将 mongo /data 目录挂载到我的 kubernetes 主机中的 NFS 卷上,以保存 mongo 数据。我看到卷已成功安装,但我只能看到 configdb 和 db 目录,但看不到它们的子目录。而且我看到数据甚至没有保留在卷中。当我kubectl describe <my_pv> 它显示NFS (an NFS mount that lasts the lifetime of a pod)
为什么会这样?
我在 kubernetes 文档中看到:
nfs 卷允许现有的 NFS(网络文件系统)共享 安装到您的吊舱中。与 emptyDir 不同,后者在 Pod 运行时被擦除 删除,保留 nfs 卷的内容,并且该卷是 只是卸载。这意味着可以预先填充 NFS 卷 有了数据,这些数据可以在 Pod 之间“传递”。 NFS 可以 由多个作者同时挂载。
我使用的是 kubernetes 1.8.3 版。
mongo-deployment.yml:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: mongo
labels:
name: mongo
app: mongo
spec:
replicas: 3
selector:
matchLabels:
name: mongo
app: mongo
template:
metadata:
name: mongo
labels:
name: mongo
app: mongo
spec:
containers:
- name: mongo
image: mongo:3.4.9
ports:
- name: mongo
containerPort: 27017
protocol: TCP
volumeMounts:
- name: mongovol
mountPath: "/data"
volumes:
- name: mongovol
persistentVolumeClaim:
claimName: mongo-pvc
mongo-pv.yml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mongo-pv
labels:
type: NFS
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: slow
mountOptions:
- hard
- nfsvers=4.1
nfs:
path: "/mongodata"
server: 172.20.33.81
mongo-pvc.yml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongo-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 3Gi
storageClassName: slow
selector:
matchLabels:
type: NFS
我在我的 kubernetes 主机上挂载我的 nfs 共享的方式:
1) apt-get install nfs-kernel-server
2) mkdir /mongodata
3) chown nobody:nogroup -R /mongodata
4) vi /etc/exports
5) added the line "/mongodata *(rw,sync,all_squash,no_subtree_check)"
6) exportfs -ra
7) service nfs-kernel-server restart
8) showmount -e ----> shows the share
我登录到我的 pod 的 bash,我看到目录已正确挂载,但数据未保存在我的 nfs 服务器(kubernetes 主机)中。
请帮我看看我在这里做错了什么。
【问题讨论】:
标签: kubernetes nfs