簡介
mongodb官方提供的k8s operator有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)