如何使用MongoDB Community Kubernetes Operator快速部署高可用副本集?5步轻松实现

【免费下载链接】mongodb-kubernetes-operator MongoDB Community Kubernetes Operator 【免费下载链接】mongodb-kubernetes-operator 项目地址: https://gitcode.com/gh_mirrors/mo/mongodb-kubernetes-operator

MongoDB Community Kubernetes Operator是一款强大的工具,能帮助用户在Kubernetes环境中轻松部署和管理MongoDB高可用副本集。本文将详细介绍通过5个简单步骤,利用该Operator实现MongoDB副本集的快速部署,让你无需复杂配置即可拥有稳定可靠的数据库服务。

1. 准备工作:环境与工具检查

在开始部署前,请确保你的环境满足以下要求:

  • 已安装Kubernetes集群(1.19+版本)
  • 已配置kubectl命令行工具并能连接到集群
  • 已安装Helm 3(用于简化部署流程)

可以通过以下命令验证环境:

kubectl version --short
helm version --short

2. 安装MongoDB Community Kubernetes Operator

2.1 使用Helm快速安装(推荐)

Helm是部署Kubernetes应用的最佳方式,执行以下命令安装Operator:

# 创建命名空间(可选但推荐)
kubectl create namespace mongodb

# 添加MongoDB Helm仓库
helm repo add mongodb https://mongodb.github.io/helm-charts

# 安装Community Operator
helm install community-operator mongodb/community-operator --namespace mongodb --create-namespace

2.2 使用kubectl手动安装

如果更倾向于使用kubectl,可以通过以下命令部署:

# 创建命名空间
kubectl create namespace mongodb

# 应用CRD
kubectl apply -f config/crd/bases/mongodbcommunity.mongodb.com_mongodbcommunity.yaml

# 应用RBAC配置
kubectl apply -k config/rbac/ --namespace mongodb

# 部署Operator
kubectl apply -k config/manager/ --namespace mongodb

3. 配置MongoDB副本集

创建一个MongoDBCommunity资源文件(例如mongodb-replicaset.yaml),内容如下:

apiVersion: mongodbcommunity.mongodb.com/v1
kind: MongoDBCommunity
metadata:
  name: my-mongodb
  namespace: mongodb
spec:
  members: 3  # 3节点副本集(推荐生产环境配置)
  type: ReplicaSet
  version: "5.0.0"
  security:
    authentication:
      modes: ["SCRAM"]
  users:
    - name: my-user
      db: admin
      passwordSecretRef:
        name: my-user-password
      roles:
        - name: clusterAdmin
          db: admin
        - name: userAdminAnyDatabase
          db: admin
      scramCredentialsSecretName: my-scram
  additionalMongodConfig:
    storage.wiredTiger.engineConfig.journalCompressor: zlib

同时创建密码密钥:

kubectl create secret generic my-user-password --from-literal=password="your-strong-password" --namespace mongodb

4. 部署MongoDB高可用副本集

应用上述配置文件部署副本集:

kubectl apply -f mongodb-replicaset.yaml --namespace mongodb

部署完成后,可以通过以下命令检查状态:

# 查看MongoDB pods
kubectl get pods -n mongodb

# 查看MongoDBCommunity资源状态
kubectl get mongodbcommunity -n mongodb

5. 验证与连接副本集

5.1 验证副本集状态

当所有pod都处于运行状态后,通过以下命令进入其中一个pod:

kubectl exec -it my-mongodb-0 -n mongodb -- mongosh -u my-user -p your-strong-password --authenticationDatabase admin

在MongoDB shell中执行:

rs.status()

你应该能看到3个节点的副本集状态,其中一个为主节点(PRIMARY),其余为从节点(SECONDARY)。

5.2 获取连接字符串

Operator会自动创建包含连接信息的secret:

kubectl get secret my-mongodb-svc-admin -n mongodb -o jsonpath='{.data.connectionString\.standard}' | base64 -d

使用此连接字符串即可从应用程序连接到MongoDB副本集。

总结

通过MongoDB Community Kubernetes Operator,只需5个简单步骤即可在Kubernetes上部署高可用的MongoDB副本集。该Operator不仅简化了部署流程,还提供了自动扩缩容、滚动更新等高级功能,是在Kubernetes环境中运行MongoDB的理想选择。

更多高级配置和最佳实践,请参考官方文档:docs/deploy-configure.mddocs/secure.md

如果需要监控MongoDB性能,可以参考 docs/prometheus/README.md 配置Prometheus监控。

【免费下载链接】mongodb-kubernetes-operator MongoDB Community Kubernetes Operator 【免费下载链接】mongodb-kubernetes-operator 项目地址: https://gitcode.com/gh_mirrors/mo/mongodb-kubernetes-operator

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐