通过mongodb-kubernetes-operator在k8s集群上部署mongodb

时间:2024-02-25 20:53:47

简介

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)