mongdb/基于Kubernetes集群构建MongoDB.md

212 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<h1><center>基于Kubernetes集群构建MongoDB</center></h1>
作者:行癫(盗版必究)
------
## 一:基础环境
1.Kubernetes集群正常运行
![image-20231122095145370](https://diandiange.oss-cn-beijing.aliyuncs.com/image-20231122095145370.png)
2.Harbor私有仓库正常运行
![image-20231122095408602](https://diandiange.oss-cn-beijing.aliyuncs.com/image-20231122095408602.png)
## 二MongoDB项目部署
MongoDB项目对应Kubernetes的yaml文件
```yaml
---
apiVersion: v1
kind: Namespace
metadata:
name: mongodb
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb
name: mongodb
namespace: mongodb
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb
spec:
containers:
- env:
- name: MONGO_INITDB_ROOT_USERNAME
value: root
- name: MONGO_INITDB_ROOT_PASSWORD
value: xingdian
image: mongo
#image: 10.9.12.201/xingdian/mongo
imagePullPolicy: IfNotPresent
name: mongodb
ports:
- containerPort: 27017
name: sss
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data/db
name: volume-4ztti
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
terminationGracePeriodSeconds: 30
volumes:
- name: volume-4ztti
nfs:
path: /data/mongodb
server: 10.9.12.250
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb
name: mongodb
namespace: mongodb
spec:
clusterIP: 10.108.206.134
clusterIPs:
- 10.108.206.134
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: 3cmrmd
nodePort: 30150
port: 27017
protocol: TCP
targetPort: 27017
selector:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb
sessionAffinity: None
type: NodePort
```
MongoDB-Express项目对应Kubernetes的yaml文件
```
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb-express
name: mongodb-express
namespace: mongodb
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb-express
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb-express
spec:
containers:
- env:
- name: ME_CONFIG_MONGODB_ADMINUSERNAME
value: root
- name: ME_CONFIG_MONGODB_ADMINPASSEORD
value: xingdian
- name: ME_CONFIG_MONGODB_URL
value: 'mongodb://root:xingdian@10.9.12.206:30150/'
#注意这里是连接mongodb的url其中root是用户xingdian是密码
image: 10.9.12.201/xingdian/mongo-express
#image: mongodb-express
imagePullPolicy: IfNotPresent
name: mongodb-express
ports:
- containerPort: 8081
name: qq
protocol: TCP
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
terminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb-express
name: mongodb-express
namespace: mongodb
resourceVersion: '36330826'
spec:
clusterIP: 10.110.224.114
clusterIPs:
- 10.110.224.114
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: berrtc
nodePort: 30151
port: 8081
protocol: TCP
targetPort: 8081
selector:
k8s.kuboard.cn/layer: web
k8s.kuboard.cn/name: mongodb-express
sessionAffinity: None
type: NodePort
```
1.浏览器访问MongoDB管理界面
![image-20231122100003032](https://diandiange.oss-cn-beijing.aliyuncs.com/image-20231122100003032.png)
## 三MongoDB使用