目录
1、创建pv目录
# master + node
apt-get install nfs-utils(主包提供文件系统)
apt-get install rpcbind(提供rpc协议)
systemctl start rpcbind
systemctl enable nfs-utis --now
mkdir -p /data/nfs/Mongo/pv
vim /etc/exports
/data/nfs/Mongo/pv *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
chmod 777 /data/nfs/Mongo/*
/etc/init.d/nfs-kernel-server restart //重启 or systemctl restart nfs
showmount -e 172.xx.xx.xx //在其他服务器上查看 (nfs服务器ip)
2、mongo.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-conf
data:
mongodb.conf: |
dbpath=/data/middleware-data/mongodb
logpath=/data/middleware-data/mongodb/mongodb.log
pidfilepath=/data/middleware-data/mongodb/master.pid
directoryperdb=true
logappend=true
bind_ip=0.0.0.0
port=27017
---
# 数据存储卷
apiVersion: v1
kind: PersistentVolume
metadata:
name: mongo-pv
spec:
capacity:
storage: 6Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: mongo
nfs:
server: 172.xx.xx.xx # nfs服务器地址
path: /data/nfs/Mongo/pv # nfs地址
---
# mongo容器
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mongodb
spec:
replicas: 1
serviceName: mongodb
selector:
matchLabels:
name: mongodb
template:
metadata:
labels:
name: mongodb
spec:
containers:
- name: mongodb
image: mongo:latest
command:
- sh
- -c
- "exec mongod -f /data/middleware-data/mongodb/conf/mongodb.conf"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 27017
name: mongodb
protocol: TCP
volumeMounts:
- name: mongodb-config
mountPath: /data/middleware-data/mongodb/conf/
- name: mongodb-data
mountPath: /data/middleware-data/mongodb/
volumes:
- name: mongodb-config
configMap:
name: mongodb-conf
- name: mongodb-data
hostPath:
path: /data/middleware-data/mongodb/
volumeClaimTemplates:
- metadata:
name: mongodb-data
spec:
storageClassName: mongo # 和上面pv匹配
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 6Gi # 和上面pv匹配
---
# 外部访问的服务
kind: Service
apiVersion: v1
metadata:
labels:
name: mongodb
name: mongodb
spec:
type: NodePort
ports:
- name: mongodb
port: 27017
targetPort: 27017
nodePort: 30102
selector:
name: mongodb