kubernetes mongodb 客户端中的“vm.max_map_count 太低”

kubernetes mongodb 客户端中的“vm.max_map_count 太低”

这就是我在 kubernetes 集群中运行 mongodb 客户端的方式:

kind: Pod
apiVersion: v1
metadata:
  name: mongodb-client
  namespace: backup
spec:
  containers:
    - name: mongodb-client
      image: mongo:6.0.6
      command: ["tail", "-f", "/dev/null"]
      imagePullPolicy: IfNotPresent

然后我尝试登录数据库:

mongosh --host "mongodb-0.mongodb-headless.databases.svc.cluster.local:27017,mongodb-1.mongodb-headless.databases.svc.cluster.local:27017,mongodb-2.mongodb-headless.databases.svc.cluster.local:27017" --authenticationDatabase admin -u user

我确实得到了输出:

Connecting to:          mongodb://<credentials>@mongodb-0.mongodb-headless.databases.svc.cluster.local:27017,mongodb-1.mongodb-headless.databases.svc.cluster.local:27017,mongodb-2.mongodb-headless.databases.svc.cluster.local:27017/?authSource=admin&appName=mongosh+1.10.0
Using MongoDB:          6.0.6
Using Mongosh:          1.10.0

For mongosh info see: https://docs.mongodb.com/mongodb-shell/


To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.

------
  The server generated these startup warnings when booting
  2023-07-11T08:35:10.635+00:00: vm.max_map_count is too low
------

为什么我会获取该vm.max_map_count is too low值以及我必须在哪里配置该值?

答案1

这是您应该更改的操作系统旋钮。查看完整mongod日志可能会有所帮助。

查看MongoDB 生产说明有关此配置的推荐设置的更多信息。有关为什么需要这样做的更多详细信息,请参见这里

答案2

您可以通过将以下内容添加到/etc/sysctl.conf

vm.max_map_count = 102400

然后重新加载这个更改:

sudo sysctl -p

(MongoDB 生产检查表页面建议使用 102400这里

相关内容