1. 程式人生 > 實用技巧 >通過mongodb-kubernetes-operator在k8s叢集上部署mongodb

通過mongodb-kubernetes-operator在k8s叢集上部署mongodb

簡介

mongodb官方提供的k8soperator有Enterprise(企業版)和Community(社群版).其中Enterprise是基於ops manager對叢集進行管理,支援備份等高階功能.社群版僅支援部署基本的多副本叢集.本文主要介紹社群版.

安裝

git clone https://github.com/mongodb/mongodb-kubernetes-operator.git
cd
mongodb-kubernetes-operator

建立k8s namespace.該名稱空間用於管理Operator和mongodb服務

kubectl create ns mongodb

安裝operator

kubectl create -f deploy/crds/mongodb.com_mongodb_crd.yaml -n mongodb
kubectl create -f deploy/operator/ -n namespace

ps: 若mongodb服務和operator服務不想部署在同一namespace,可以修改deploy/operator/operator.yaml 的WATCH_NAMESPACE欄位

驗證

kubectl get crd/mongodb.mongodb.com
kubectl get pods -n mongodb

安裝mongodb資源

kubectl create -f deploy/crds/mongodb.com_v1_mongodb_scram_cr.yaml -n mongodb

驗證

kubectl get pods -n mongodb

修改svc從clusterIp為NodePort(測試驗證)

kubectl edit svc -n mongodb example-scram-mongodb
kubectl get svc -n mongodb example-scram-mongodb

獲取svc的埠號後,即可通過navicat等工具進行連線,使用者名稱為deploy/crds/mongodb.com_v1_mongodb_scram_cr.yaml中的spec.users.name欄位和secret中的stringData.password (my-user/58LObjiMpxcjP1sMDW)