Mongodb的集羣搭建方式主要有三種,主從模式,Replica set模式,sharding模式, 三種模式各有優劣,適用於不同的場合,屬Replica set應用最爲廣泛,主從模式現在用的較少,sharding模式最爲完備,但配置維護較爲複雜。
本次使用的方式是 Replica set模式
部署步驟
1、
2、
先爲mongodb創建一個新空間
kubectl create ns mongo-test
helm pull stable/mongodb -n mongo-test
下載會卡在pull 鏡像這裏
docker.io/bitnami/mongodb:4.2.4-debian-10-r0
我是快下班的時候安裝的,等到第二天來就全部下載成功了。
3、
解壓工程,用VS Code打開後如下圖
4、
需要解決三個問題
4.1、存儲卷使用的是 glusterfs 而不是 nfs
需要改這個配置
然後再運行安裝命令
在templates 的文件夾同級執行
helm install mongo . -f /values.yaml -n mongo-test
helm list -n mongo-test
kubectl get all -n mongo-test
可以看到兩個pvc已經創建成功。
打X 的是,下一個問題創建的對外訪問服務。
4.2、提供對外訪問的端口
新建 service.yaml 文件
apiVersion: v1
kind: Service
metadata:
name: mongo-ha-service #名稱:隨意
labels:
app: mongo #部署的 redis-ha 名稱
spec:
ports:
- name: mongo #部署的 redis-ha 名稱
protocol: "TCP" #TCP 協議
port: 27017
nodePort: 30381 #此爲外部連接k8s redis-ha 服務的端口
selector:
app: mongodb
type: NodePort
kubectl apply -f service.yaml -n mongo-test
4.3、mongo訪問的用戶名密碼信息怎麼設置
通過查看secrets.yaml文件,可以看出,root賬號的密碼,是在values.yaml中定義的
所以修改values.yaml中的配置
以上4個問題都解決後,可以重新安裝一次mongo
helm uninstall mongo
helm install mongo ...
然後Robo 3T 登陸,使用任一個master node的主機ip+對外端口號訪問
即可成功登陸!