对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

MongoDBCommunity 资源规范

MongoDBCommunity自定义资源允许您在Kubernetes中部署和管理MongoDB Community Edition副本集。 Kubernetes Operator 使用此资源创建运行MongoDB Community部署所需的 StatefulSet、服务和其他Kubernetes资源。

要学习;了解更多信息,请参阅MongoDB Community Operator 文档。

以下示例显示了MongoDBCommunity自定义资源的资源规范:

1apiVersion: mongodbcommunity.mongodb.com/v1
2kind: MongoDBCommunity
3metadata:
4 name: my-mongodb-community
5spec:
6 version: "8.0.0"
7 type: ReplicaSet
8 members: 3
9 security:
10 tls:
11 enabled: true
12 certificateKeySecretRef:
13 name: mongodb-tls-cert
14 caConfigMapRef:
15 name: mongodb-ca
16 authentication:
17 ignoreUnknownUsers: true
18 modes:
19 - SCRAM
20 agent:
21 logLevel: DEBUG
22 statefulSet:
23 spec:
24 template:
25 spec:
26 containers:
27 - name: mongod
28 resources:
29 limits:
30 cpu: "2"
31 memory: 2Gi
32 requests:
33 cpu: "1"
34 memory: 1Gi
35 - name: mongodb-agent
36 resources:
37 limits:
38 cpu: "1"
39 memory: 2Gi
40 requests:
41 cpu: "0.5"
42 memory: 1Gi
43 users:
44 - name: mdb-admin
45 db: admin
46 passwordSecretRef:
47 name: mdb-admin-user-password
48 scramCredentialsSecretName: mdb-admin-user
49 roles:
50 - name: root
51 db: admin

本部分介绍必须用于所有MongoDBCommunity资源的设置。

apiVersion

类型:字符串

MongoDB Kubernetes资源模式的版本。将值设置为 mongodbcommunity.mongodb.com/v1

kind

类型:字符串

要创建的 MongoDB Kubernetes 资源类型。 将其设置为MongoDBCommunity

metadata.name

类型:字符串

人类可读的名称,以便您识别此特定的MongoDBCommunity资源。

资源名称必须少于或等于 44 个字符。

spec.version

类型:字符串

要部署的MongoDB Community版本。示例,"8.0.0"

spec.type

类型:字符串

要创建的MongoDB 部署的类型。接受的值为 ReplicaSet

spec.members

类型:整型

mongod副本集成员的数量。这决定了Kubernetes Operator 在 StatefulSet 中创建的 Pod 数量。

MongoDBCommunity自定义资源可以使用以下设置:

spec.security

类型:对象

MongoDBCommunity资源的安全配置。包含 TLS 和身份验证设置。

spec.security.tls

类型:对象

MongoDB 部署的 TLS 设置。

spec.security.tls.enabled

类型:布尔值

标记为MongoDB 部署启用或禁用 TLS。设置为 true 可启用TLS 加密连接。

spec.security.tls.certificateKeySecretRef.name

类型:字符串

包含MongoDB 部署的 TLS服务器证书和私钥的Kubernetes密钥的名称。

spec.security.tls.caConfigMapRef.name

类型:字符串

Kubernetes ConfigMap 的名称,其中包含用于验证 TLS 连接的证书颁发机构 (CA) 证书。

spec.security.authentication

类型:对象

MongoDB 部署的身份验证配置。

spec.security.authentication.modes

类型:字符串数组

要在MongoDB 部署上启用的身份验证机制列表。接受的值包括:

  • SCRAM
spec.security.authentication.ignoreUnknownUsers

类型:布尔值

如果为 true,则Kubernetes Operator 不会为MongoDB 部署中存在但未在 MongoDBCommunity资源规范中定义的用户报告错误。

默认值:false

spec.agent

类型:对象

MongoDB 助手的配置设置。

spec.agent.logLevel

类型:字符串

MongoDB 助手日志的详细程度。接受的值包括:

  • DEBUG

  • INFO

  • WARN

  • ERROR

spec.statefulSet

类型:对象

Kubernetes Operator 为MongoDBCommunity 资源创建的 StatefulSet 规范。使用它来覆盖默认的容器资源请求和限制。

spec.statefulSet.spec

类型:对象

Kubernetes Operator 与生成的默认值合并的 StatefulSet 规范。遵循标准Kubernetes StatefulSet 规范。

spec.statefulSet.spec.template.spec.containers

类型:对象数组

容器覆盖列表。您可以覆盖以下容器的资源请求和限制:

  • mongod — MongoDB 数据库容器。

  • mongodb-agent — MongoDB 助手sidecar容器。

containers:
- name: mongod
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: "1"
memory: 1Gi
- name: mongodb-agent
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: "0.5"
memory: 1Gi
spec.users

类型:对象数组

要为此部署创建的MongoDB 数据库用户列表。每个用户对象都定义数据库用户的凭证和角色。

spec.users[*].name

类型:字符串

MongoDB 数据库用户的用户名。

spec.users[*].db

类型:字符串

用户的身份验证数据库。默认值为 admin

spec.users[*].passwordSecretRef.name

类型:字符串

包含此数据库用户密码的Kubernetes密钥名称。

spec.users[*].scramCredentialsSecretName

类型:字符串

Kubernetes Operator 存储为此用户生成的SCRAM凭证的密钥名称。

spec.users[*].roles

类型:对象数组

分配给该数据库用户的角色列表。

spec.users[*].roles[*].name

类型:字符串

要分配的角色名称。示例,rootreadWritereadAnyDatabasesearchCoordinator

spec.users[*].roles[*].db

类型:字符串

应用角色的数据库。示例,admin

您可以使用MongoDBCommunity MongoDBSearchCRD 将MongoDB Search 和 Vector Search 与 资源一起部署。要启用搜索功能,请创建具有search-sync-source 角色的searchCoordinator 用户:

users:
- name: search-sync-source
db: admin
passwordSecretRef:
name: my-resource-search-sync-source-password
scramCredentialsSecretName: my-resource-search-sync-source
roles:
- name: searchCoordinator
db: admin

注意

对于MongoDB 8.2 及更高版本,searchCoordinator 是内置角色。对于早期版本, Kubernetes Operator 会自动创建 searchCoordinator自定义角色。

要学习;了解更多信息,请参阅部署MongoDB Search 和 Vector Search。