You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s集群Mongo-Express Pod启动异常 配置useUnifiedTopology仍无效

K8s中Mongo-Express Pod启动时MongoDB驱动警告的解决办法

在K8s集群启动Mongo-Express Pod时,出现以下MongoDB驱动警告:

[MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option 'useUnifiedTopology: true' to the MongoClient constructor.

尝试多种方案后警告仍未消除,以下是相关配置文件:

ConfigMap配置(configMap.yaml)

apiVersion: v1
kind: ConfigMap
metadata:
  name: mongodb-configmap
data:
  database_url: mongodb-service
  options: '{"useUnifiedTopology":true}'

MongoDB部署及服务配置(mongo.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-deployment
  labels:
    app: mongodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongodb
  template:
    metadata:
      labels:
        app: mongodb
    spec:
      containers:
      - name: mongodb
        image: mongo
        ports:
        - containerPort: 27017
        env:
        - name: MONGO_INITDB_ROOT_USERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-username
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-password
---

apiVersion: v1
kind: Service
metadata:
  name: mongodb-service
  labels:
    app: mongodb
spec:
  selector:
    app: mongodb
  ports:
    - protocol: TCP
      port: 27017

Mongo-Express部署配置(mongo-express.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo-express-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongo-express
  template:
    metadata:
      labels:
        app: mongo-express
    spec:
      containers:
      - name: mongo-express
        image: mongo-express
        env:
        - name: MONGO_OPTIONS
          valueFrom:
            configMapKeyRef:
              name: mongodb-configmap
              key: options
        - name: ME_CONFIG_MONGODB_ADMINUSERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-username
        - name: ME_CONFIG_MONGODB_ADMINPASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-password
        - name: ME_CONFIG_MONGODB_SERVER
          valueFrom:
            configMapKeyRef:
              name: mongodb-configmap
              key: database_url

问题分析及修复步骤

当前警告无法消除的核心原因有两个:

  1. ConfigMap中的JSON字符串转义错误
  2. 使用了Mongo-Express不识别的环境变量

1. 修正ConfigMap的JSON格式

ConfigMap里的options字段不需要转义双引号,直接写入原始JSON即可:

apiVersion: v1
kind: ConfigMap
metadata:
  name: mongodb-configmap
data:
  database_url: mongodb-service
  options: '{"useUnifiedTopology":true}'

2. 替换为Mongo-Express支持的环境变量

Mongo-Express使用ME_CONFIG_MONGODB_OPTIONS而非MONGO_OPTIONS来传递MongoDB客户端配置。修改mongo-express.yaml中的环境变量:

env:
- name: ME_CONFIG_MONGODB_OPTIONS
  valueFrom:
    configMapKeyRef:
      name: mongodb-configmap
      key: options
# 其余环境变量保持不变

3. 重新部署配置

执行以下命令删除旧资源并重新应用修改后的配置:

kubectl delete configmap mongodb-configmap
kubectl delete deployment mongo-express-deployment
kubectl apply -f configMap.yaml
kubectl apply -f mongo-express.yaml

完成以上操作后,Mongo-Express会正确加载useUnifiedTopology: true选项,驱动警告即可消除。

内容的提问来源于stack exchange,提问作者Mohammed Esmail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:18:15