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

MongoDBCommunity 资源规范

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

要了解更多信息,请参阅MongoDB Community 操作符 文档。

以下示例显示了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

类型:整型

副本集节点的数量。这将决定 Kubernetes 操作符在StatefulSet中创建多少个 mongod 节点。

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

spec.security

类型:对象

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

spec.security.tls

类型:对象

MongoDB 部署的 TLS 设置。

spec.security.tls.enabled

类型:布尔值

用于启用或禁用 MongoDB 部署的 TLS 的标志。设置为 true 以启用 TLS 加密连接。

spec.security.tls.certificateKeySecretRef.name

类型:字符串

Kubernetes secret 的名称,其中包含 MongoDB 部署的 TLS 服务器证书和私钥。

spec.security.tls.caConfigMapRef.name

类型:字符串

包含用于验证 TLS 连接的证书授权机构 (CA) 证书的 Kubernetes ConfigMap 名称。

spec.security.authentication

类型:对象

MongoDB 部署的身份验证配置。

spec.security.authentication.modes

类型:字符串数组

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

  • SCRAM
spec.security.authentication.ignoreUnknownUsers

类型:布尔值

如果 true,Kubernetes 操作符不会对存在于 MongoDB 部署但未在 MongoDBCommunity 资源规格中定义的用户报告错误。

默认值:false

spec.agent

类型:对象

MongoDB Agent 的配置设置。

spec.agent.logLevel

类型:字符串

MongoDB Agent 日志的详细程度。可接受的值包括:

  • DEBUG

  • INFO

  • WARN

  • ERROR

spec.statefulSet

类型:对象

Kubernetes 操作符 为 MongoDBCommunity 资源创建的StatefulSet 规范。使用此重写默认容器资源请求和限制。

spec.statefulSet.spec

类型:对象

StatefulSet规格,Kubernetes 操作符将其与生成的默认值合并。遵循标准 Kubernetes StatefulSet 规格。

spec.statefulSet.spec.template.spec.containers

类型:对象数组

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

  • mongod — MongoDB 数据库容器。

  • mongodb-agent — MongoDB Agent 侧车容器。

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 secret的名称,其中包含此数据库用户的密码。

spec.users[*].scramCredentialsSecretName

类型:字符串

秘密的名称,Kubernetes 操作符在其中存储此用户的生成 SCRAM 凭证。

spec.users[*].roles

类型:对象数组

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

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

类型:字符串

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

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

类型:字符串

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

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

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 操作符 会自动创建 searchCoordinator 自定义角色。

要了解更多信息,请参阅部署 MongoDB Search 和向量搜索。