Kubernetes部署MongoDB
本文为K8s集群部署单节点mongodb,用于业务服务测试。
创建动态持久卷存储
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongodb-disk
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: alicloud-disk-available
volumeMode: Filesystem
创建MongoDB工作负载
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb
namespace: default
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: registry.cn-beijing.cr.aliyuncs.com/mongo:6.0.3
imagePullPolicy: IfNotPresent
ports:
- containerPort: 27017
volumeMounts:
- name: mongodb-disk
mountPath: /data/db
volumes:
- name: mongodb-disk
persistentVolumeClaim:
claimName: mongodb-disk
imagePullSecrets:
- name: aliyun-docker-registry
创建服务
ClusterIP用于K8s集群内部连接
apiVersion: v1
kind: Service
metadata:
labels:
app: mongodb
name: mongodb-svc
namespace: default
spec:
ports:
- name: mongo
port: 27017
protocol: TCP
targetPort: 27017
selector:
app: mongodb
type: ClusterIP
Nodeport用于本地连接
apiVersion: v1
kind: Service
metadata:
labels:
app: mongodb
name: mongodb-nodeport
namespace: default
spec:
ports:
- name: mongo
nodePort: 32717
port: 27017
protocol: TCP
targetPort: 27017
selector:
app: mongodb
sessionAffinity: None
type: NodePort
通过上面步骤部署好的MongoDB数据库无需用户名、密码即可连接,如果想要开启权限验证,只需要在YAML文件中入环境变量MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了