AtlasDeployment
自定义资源
AtlasDeployment
自定义资源在Atlas中配置MongoDB 集群或无服务器实例。当您创建 AtlasDeployment
自定义资源时, Atlas Kubernetes Operator会尝试在Atlas中创建或更新集群或无服务器实例。
重要
Atlas Kubernetes Operator 2.0 破坏性变更 (breaking change)所需的操作
在 Atlas Kubernetes Operator 2.0 中,
deploymentSpec
取代了advancedDeploymentSpec
AtlasDeployment
自定义资源中的 。您必须按如下方式更新AtlasDeployment
自定义资源:如果使用
advancedDeploymentSpec
,请将其重命名为deploymentSpec
。 您无需更改任何格式。如果您在Atlas Kubernetes Operator 之前使用
deploymentSpec
2.0 ,请重写AtlasDeployment
自定义资源以匹配 示例中使用的格式。
Atlas Kubernetes Operator使用自定义资源配置文件来管理Atlas配置。 从Atlas Kubernetes Operator 2.0开始,您在Kubernetes中删除的自定义资源将不再在Atlas中删除。 相反, Atlas Kubernetes Operator停止管理这些资源。 示例,如果您在Kubernetes中删除
AtlasProject
自定义资源, Atlas Kubernetes Operator将不再自动从Atlas中删除相应的项目,从而防止意外删除。 要学习;了解详情,包括如何将此行为恢复为Atlas Kubernetes Operator 2之前使用的默认行为。 0 、 请参阅新默认值: Atlas Kubernetes Operator 2中的删除保护。 0 。
Atlas Kubernetes Operator 根据您在AtlasDeployment
自定义资源中指定的值执行以下操作之一:
如果您指定
spec.deploymentSpec
下的字段值, Atlas Kubernetes Operator将使用Atlas Clusters API资源来创建新集群或更新现有集群。如果您指定
spec.serverlessSpec
下的字段值, Atlas Kubernetes Operator将使用Atlas Serverless Instance API资源来创建新的 Serverless实例或更新现有的 Serverless实例。
创建或更新集群或无服务器实例最多可能需要 10 分钟。 Atlas Kubernetes Operator监控更新进程。
您可以运行以下命令来检查状态:
kubectl get atlasdeployment -o yaml
以下示例显示了正在配置的集群的状态部分:
status: conditions: - lastTransitionTime: "2021-03-18T16:32:43Z" status: "False" type: ClusterReady reason: ClusterCreating message: Cluster is provisioning
当集群或无服务器实例准备就绪时,ClusterReady
状态将更改为 True
。
示例
状态示例
以下示例显示了ClusterReady
状态为True
的AtlasDeployment
资源:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster namespace: mongodb-atlas-system spec: projectRef: name: my-project deploymentSpec: name: test-cluster tags: - key: "environment" value: "production" replicationSpecs: - zoneName: US-Zone numShards: 3 regionConfigs: - regionName: CENTRAL_US providerName: GCP backingProviderName: GCP priority: 7 electableSpecs: instanceSize: M10 nodeCount: 3 status: conditions: - lastTransitionTime: "2021-03-18T16:32:43Z" status: "True" type: Ready - lastTransitionTime: "2021-03-18T16:32:43Z" status: "True" type: ClusterReady connectionStrings: standard: mongodb://test-cluster-shard-00-00.kpc8f.mongodb.net:27017,test-cluster-shard-00-01.kpc8f.mongodb.net:27017,test-cluster-shard-00-02.kpc8f.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-1gm1pv-shard-0 standardSrv: mongodb+srv://test-cluster.kpc8f.mongodb.net mongoDBVersion: 6.0 mongoURIUpdated: "2021-03-12T12:21:41Z" observedGeneration: 1 stateName: IDLE
配置示例
以下示例显示了为自动伸缩多区域集群配置的AtlasDeployment
自定义资源规范:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: test-cluster-name namespace: mongodb-atlas-system spec: projectRef: name: development deploymentSpec: clusterType: REPLICASET name: service-name tags: - key: "environment" value: "production" backupEnabled: true replicationSpecs: - numShards: 1 regionConfigs: - regionName: EASTERN_US providerName: GCP autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40 analyticsSpecs: instanceSize: M30 nodeCount: 1 electableSpecs: instanceSize: M30 nodeCount: 3 priority: 7 readOnlySpecs: instanceSize: M30 nodeCount: 1
其他选项示例
以下示例显示了配置有一些附加选项的AtlasDeployment
自定义资源规范。
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster spec: projectRef: name: my-project deploymentSpec: name: test-cluster tags: - key: "environment" value: "production" replicationSpecs: - zoneName: Zone 1 regionConfigs: - electableSpecs: instanceSize: M10 nodeCount: 3 providerName: AWS regionName: US_EAST_1 priority: 7 processArgs: javascriptEnabled: false
无服务器实例示例
以下示例显示了为无服务器实例配置的 AtlasDeployment
自定义资源规范:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: test-cluster-name namespace: mongodb-atlas-system spec: projectRef: name: development serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: AWS regionName: US_EAST_1
多区域集群示例
集群可以跨区域和云服务提供商。 要了解更多信息,请参阅注意事项。
注意
Atlas集群 API 资源使用v1.5
Atlas API版本发送请求,而 Atlas Kubernetes Operator apiVersion
字段使用v1
。 在本例中, v1
指的是 Kubernetes API的版本。
以下示例显示了为多区域集群配置的AtlasDeployment
自定义资源规范:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster spec: projectRef: name: my-project deploymentSpec: clusterType: REPLICASET name: tenantCluster tags: - key: "environment" value: "production" replicationSpecs: - zoneName: Zone 1 regionConfigs: priority: 7 - electableSpecs: instanceSize: M10 nodeCount: 3 providerName: AWS regionName: US_EAST_1
多个云服务提供商示例
以下示例显示了配置为跨多个云服务提供商的AtlasDeployment
自定义资源规范:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster spec: projectRef: name: my-project deploymentSpec: clusterType: REPLICASET name: tenantCluster tags: - key: "environment" value: "production" replicationSpecs: - regionConfigs: - electableSpecs: instanceSize: M10 nodeCount: 3 providerName: AWS regionName: US_EAST_1 priority: 7 - electableSpecs: instanceSize: M10 nodeCount: 2 providerName: AZURE regionName: US_EAST_2 priority: 6 - electableSpecs: instanceSize: M10 nodeCount: 2 providerName: GCP regionName: CENTRAL_US priority: 5
Atlas Search索引示例
以下示例显示了配置为集合 listingsAndReviews
和 grades
创建Atlas Search索引的 AtlasDeployment
自定义资源规范:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster namespace: mongodb-atlas-system spec: deploymentSpec: backupEnabled: true clusterType: REPLICASET name: Test-cluster-M10 replicationSpecs: - regionConfigs: - backingProviderName: AWS electableSpecs: instanceSize: M10 nodeCount: 3 priority: 7 providerName: AWS regionName: US_EAST_1 zoneName: Zone 1 searchIndexes: - DBName: sample_training collectionName: grades name: test-vector-search-index type: vectorSearch vectorSearch: fields: - numDimensions: 1000 path: student_id similarity: euclidean type: vector - DBName: sample_airbnb collectionName: listingsAndReviews name: my-index search: mappings: dynamic: true searchConfigurationRef: name: atlassearchindexconfig-sample namespace: mongodb-atlas-system type: search terminationProtectionEnabled: false projectRef: name: my-project namespace: mongodb-atlas-system
Atlas Search节点示例
以下示例显示了配置用于创建Atlas Search节点的 AtlasDeployment
自定义资源规范:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-atlas-cluster namespace: mongodb-atlas-system spec: deploymentSpec: backupEnabled: true clusterType: REPLICASET name: Test-cluster-M10 replicationSpecs: - regionConfigs: - backingProviderName: AWS electableSpecs: instanceSize: M10 nodeCount: 3 priority: 7 providerName: AWS regionName: US_EAST_1 zoneName: Zone 1 searchNodes: - instanceSize: S20_HIGHCPU_NVME nodeCount: 2
参数
本部分介绍一些可用的关键AtlasDeployment
自定义资源参数。
有关集群可用参数的完整列表,请参阅 Atlas 集群 API。
要自定义规范,请参阅这些描述、可用示例和API文档。
spec.backupRef
类型:对象
Optional
包含要应用的
AtlasBackupSchedule
自定义资源详细信息的列表。 您可以为每个集群指定一个备份安排。
spec.backupRef.name
类型:字符串
Optional
metadata.name
要应用的备份安排的AtlasBackupSchedule
自定义资源中的值。您只能为每个集群指定一个备份安排,但可以为多个集群使用相同的备份安排。如果省略此参数,Atlas 不会将备份配置应用于此集群。
spec.backupRef.namespace
类型:字符串
Optional
字符串,表示包含要应用的备份安排的
AtlasBackupSchedule
自定义资源的命名空间。
spec.connectionSecret.name
类型:字符串
可选的
不透明密钥 IDAPIAtlas Kubernetes OperatorAtlas的名称,其中包含Atlas Kubernetes Operator用于连接到Atlas的组织ID和API密钥。如果未指定, Atlas Kubernetes Operator会回退到以下任一项:
父级
atlasProject
的spec.connectionSecretRef.name
参数默认
global
密钥(如果未为父atlasProject
定义spec.connectionSecretRef.name
Atlas Kubernetes Operator 仅监视带有标签 的密钥,以避免监视不必要的
atlas.mongodb.com/type=credentials
密钥 。以下示例标记了密钥:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.deploymentSpec
类型:数组
可选的
包含来自API的集群参数的列表。 有关可用参数的完整列表,请参阅 Atlas集群 API。
重要
您必须在配置中指定
spec.deploymentSpec
或spec.serverlessSpec
。
spec.deploymentSpec.clusterType
类型:字符串
可选的
人类可读标签,用于标识要创建的集群类型。
什么时候应该使用这个参数?
条件必要性必需
您正在部署全球集群。
必需
您正在部署非全局副本集和分片集群。
Optional
Atlas 接受:
值集群类型副本集(Replica Set)
复制集
分片
分片集群
GeoHARDED
spec.deploymentSpec.customZoneMapping
类型:数组
必需
包含将区域映射到地理区域的全局集群参数的列表。 有关可用参数的完整列表,请参阅Atlas Global Clusters API。
spec.deploymentSpec.customZoneMapping.location
类型:字符串
必需
表示映射到全球集群中区域的位置的代码。
spec.deploymentSpec.customZoneMapping.zone
类型:字符串
必需
人类可读标签,用于标识全局集群中的区域。
spec.deploymentSpec.diskSizeGB
类型:数字
Optional
表示主机根卷的容量,以 GB 为单位。 增加此数字可增加容量,最大可能值为
4096
(4 TB)。 您必须为此值指定一个正数。您无法为具有本地NVMe SSD的集群设置此值。
注意
如果您在任何地区为
diskGB
启用了自动伸缩,则无法编辑此选项。 要了解更多信息,请参阅spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.diskGB.enabled
。对于 AWS 和 Google Cloud,专用集群的最小磁盘大小为 10 GB。如果您用较小的磁盘大小指定此设置,则 Atlas 默认使用最小磁盘大小值。
如果您的数据库部署包含Azure节点,此值必须与现有Azure磁盘类型(8、16、32、64、128、256、512、1024、2048 或 4096)相对应。
根据您选择的是默认值还是自定义值, Atlas 计算存储费的方式会有所不同。
Atlas 对单个副本集有磁盘容量限制,对于更高的集群层可扩展到4 TB。 要将集群总存储空间扩展到默认限制之外,您可以在项目设置中启用扩展存储。 为了适应未来的进一步扩展,我们建议您为长期扩展启用分片。
如果数据库部署跨越云服务提供商, 该值默认为相关提供商的最小默认值。
要了解更多信息,请参阅存储容量。
spec.deploymentSpec.encryptionAtRestProvider
类型:字符串
Optional
托管此集群的客户密钥的云服务提供商。您必须设置此值才能为此集群启用使用客户托管密钥的静态加密,从而提供额外的加密层。要了解更多信息,请参阅使用KMS加密数据。
Atlas 接受以下值:
值云服务提供商AWS
Amazon Amazon Web Services
GCP
Google Cloud
AZURE
Microsoft Azure
无
无提供商;集群不使用客户托管的密钥加密数据。
spec.deploymentSpec.managedNamespaces
类型:数组
必需
列表,其中包含在要创建的指定全局集群中创建托管命名空间的信息。 有关可用参数的完整列表,请参阅 Atlas Global Clusters API。
spec.deploymentSpec.managedNamespaces.db
类型:字符串
必需
要在此全局集群中管理的数据库的人类可读标签。
spec.deploymentSpec.managedNamespaces.isCustomShardKeyHashed
类型:布尔值
Optional
Flag that indicates whether to hash the custom shard key for the specified collection. 此参数默认为
false
。设置为
true
可为collection启用自定义分片键。设置为
false
可禁用集合的自定义分片键。 如果禁用,MongoDB 将使用范围分片。
要了解更多信息,请参阅哈希分片键。
spec.deploymentSpec.managedNamespaces.isCustomShardKeyUnique
类型:布尔值
Optional
指示指定collection的自定义分片键是否唯一的标志。此参数默认为
false
。设置为
true
可为collection启用唯一的自定义分片键。设置为
false
可禁用collection的唯一自定义分片键。
spec.deploymentSpec.managedNamespaces.numInitialChunks
类型:整型
Optional
要学习;了解更多信息,请参阅对全局集合进行分片。
spec.deploymentSpec.managedNamespaces.presplitHashedZones
类型:布尔值
Optional
该标志指示 MongoDB Cloud 是否应为空或不存在的 collection 创建和分发初始数据块。此参数默认为
false
。设置为
true
可让 MongoDB Cloud 为空或不存在的collection创建和分发初始数据块。设置为
false
可让 MongoDB Cloud 不为空或不存在的collection创建和分发初始数据块。
spec.deploymentSpec.mongoDBMajorVersion
类型:字符串
Optional
要部署的集群的版本。 Atlas 支持
M10+
集群的以下 MongoDB 版本:5.0
6.0
7.0
以下条件会产生以下结果:
条件结果您可以省略此参数,也可以省略
spec.deploymentSpec.versionReleaseSystem
参数。Atlas 部署一个运行 MongoDB 7.0 的集群。
您可以省略此参数,设立
spec.deploymentSpec.versionReleaseSystem
参数设置为LTS
。Atlas 部署一个运行 MongoDB 7.0 的集群。
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
设立 参数设置为M0
、M2
或M5
。您必须部署 MongoDB 7.0。
您可以指定此参数。
Atlas 始终使用发布了最新稳定补丁的指定版本部署该集群。
您设立
spec.deploymentSpec.versionReleaseSystem
参数设置为CONTINUOUS
。您必须省略此参数。
spec.deploymentSpec.replicationSpecs
类型:对象数组
可选的
包含集群区域配置的列表。 将此参数用于多区域集群。 您必须设置
spec.deploymentSpec.replicationSpecs.regionConfigs.regionName
或spec.deploymentSpec.replicationSpecs
。什么时候应该使用这个参数?
条件必要性Values您正在部署全球集群。
必需
数组中的每个对象都代表 Atlas 部署 集群节点的区域。
您正在部署非全局副本集和分片集群。
Optional
该数组中有一个对象代表 Atlas 部署集群节点的位置。
如果指定此参数,则还必须指定
spec.deploymentSpec.clusterType
和spec.deploymentSpec.replicationSpecs.numShards
。
spec.deploymentSpec.replicationSpecs.numShards
类型:整型
可选的
正整数,指定要为分片集群部署的分片数量。
如果使用
spec.deploymentSpec.replicationSpecs
参数,则必须设置此参数。Atlas 接受
1
至50
(含)。 默认值为1
。如果您指定值
1
设立spec.deploymentSpec.clusterType
设置为SHARDED
,则Atlas将部署单分片的分片分片集群。如果您指定
1
设立spec.deploymentSpec.clusterType
设置为REPLICASET
,则Atlas会部署副本集。不要为生产环境创建单分片的分片集群。单分片的分片集群无法提供与多分片配置相同的优势。
spec.deploymentSpec.replicationSpecs.regionConfigs
类型:数组
必需
为地区设置的节点的硬件规格。每个
regionConfigs
对象都描述了该地区在选举中的优先级以及 Atlas 部署到该地区的 MongoDB 节点的数量和类型。每个
regionConfigs
对象必须具有analyticsSpecs
对象、electableSpecs
对象或readOnlySpecs
对象。M0
、M2
或M5
集群仅需要electableSpecs
。专用集群可以指定任何这些规范,但必须在
replicationSpec
中至少有一个electableSpecs
对象。每个硬件规格必须使用相同的
instanceSize
。
spec.deploymentSpec.replicationSpecs.regionConfigs.analyticsSpecs
类型:对象
Optional
该区域所需分析节点的硬件规格。 分析节点处理分析数据,例如 Atlas 的 BI Connector 的报告查询。 分析节点为只读节点,永远不能成为主节点。
如果不指定此参数,Atlas 不会在此区域部署分析节点。
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.diskGB.enabled
类型:布尔值
Optional
指示此数据库部署是否启用磁盘自动伸缩的标志。 此参数默认为
true
。设置为
true
以启用磁盘自动扩展。设置为
false
以禁用磁盘自动扩展。
所选集群层的最大 RAM 容量和 oplog 大小会限制存储的自动扩展。 要了解更多信息,请参阅自定义存储。
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
类型:布尔值
Optional
指示是否启用实例大小自动扩展的标志。 此参数默认为
false
。设置为
true
可启用实例大小自动扩展。 如果启用,则必须为spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
指定一个值。设置为
false
可禁用实例大小自动扩展。
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
类型:字符串
可选的
string ,表示数据库部署可自动扩展的最大实例大小(如
M40
)。 如果将spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
设置为true
,则必须指定此参数。注意
如果您设置的最大实例大小小于数据库部署的 当前实例大小(已启用自动扩展), Atlas 会自动将当前实例大小扩展至 您指定的最大值。
例如,如果数据库部署的当前实例大小为
M40
,而您将最大实例大小设置为M30
,则 Atlas 会自动将当前实例大小扩展到M30
。如果Atlas更改了当前实例大小,而您没有更改Atlas Kubernetes Operator中的
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
以匹配新的实例大小,Atlas Kubernetes Operator会在日志中显示警告,但不会阻止自动扩展。
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSize
类型:字符串
可选的
string ,表示数据库部署可自动扩展的最小实例大小(如
M10
)。 如果将spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
设置为true
,则必须指定此参数。注意
如果您设置的最小实例大小大于数据库部署的 当前实例大小(已启用自动扩展), Atlas 会自动将当前实例大小 扩展至您指定的最小值。
例如,如果数据库部署的当前实例大小为
M10
,而您将最小实例大小设置为M30
,则 Atlas 会自动将当前实例大小扩展到M30
。如果Atlas更改了当前实例大小,而您没有更改Atlas Kubernetes Operator中的
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
以匹配新的实例大小,Atlas Kubernetes Operator会在日志中显示警告,但不会阻止自动扩展。
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs
类型:对象
Optional
该地区可选举节点的硬件规格。 可选举节点可以成为主节点,并且可以启用本地读取。
如果不指定该选项,Atlas 不会在该区域部署可选举节点。
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.instanceSize
类型:字符串
可选的
此区域中实例大小的硬件规格。 每个实例大小都有默认的存储和内存容量。 您选择的实例大小会应用于实例大小内的所有数据承载主机。 要了解更多信息,请参阅Amazon Web Services 、 GCP和Azure自定义存储大小。
如果部署分片集群或全局集群,则必须选择
M30
或更大的实例大小。如果您在部署集群后更改实例大小名称,Atlas 会将数据库部署更改为您指定的实例大小,除非它超出您在启用自动伸缩的情况下在
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSize
和spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
中指定的范围。 要了解详情,请参阅spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSize
和spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize
。注意
如果您为计算字段启用了自动扩展,则无法编辑此选项。 要了解详情,请参阅
spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled
。注意
您可以更改此设置,升级
M0
、M2
、M5
或 Flex集群升级到M10+
集群。但是,您无法升级M0
、M2
、M5`, or Flex cluster to another free or shared cluster. For example, you can't upgrade an ``M0
集群升级到 Flex集群。
spec.deploymentSpec.replicationSpecs.regionConfigs.electableSpecs.nodeCount
类型:整型
可选的
Atlas 部署到该地区的可选举节点数量。可选举节点可以成为主节点,并且可以启用本地读取。
所有
replicationSpecs.regionConfigs
对象的electableSpecs.nodeCount
总和必须为3
、5
或7
。如果
spec.deploymentSpec.replicationSpecs.regionConfigs.priority
为0
,则无法创建可选举节点。
spec.deploymentSpec.replicationSpecs.regionConfigs.priority
类型:整型
必需
选举主节点时,优先考虑该地区。
如果您的
regionConfigs
只有readOnlySpecs
和/或analyticsSpecs
,请将此值设置为0
。如果您有多个
regionConfigs
对象(您的集群是多地区或多云),则它们的优先级必须按降序排列。最高优先级为7
。例子
将最高优先级区域设置为
7
,将第二高优先级区域设置为6
,将第三优先级区域设置为5
。 如果没有可选举节点,请将此值设置为0
。如果您的地区已将
electableSpecs.nodeCount
设置为1
或更高,则其优先级必须比replicationSpecs.regionConfigs
数组中的另一地区低一级,除非是主节点。优先级最高的区域的优先级必须为7
。 可能的最低优先级是1
。优先级
7
地区标识集群的首选地区。Atlas 将主节点置于“首选地区”中。优先级1
到7
具有排他性:您不能为每个集群的多个地区分配给定优先级。例子
如果有三个区域,则它们的优先级将分别为
7
、6
和5
。 如果您再添加两个区域来支持可选举节点,则这些区域的优先级将分别为4
和3
。
spec.deploymentSpec.replicationSpecs.regionConfigs.providerName
类型:字符串
可选的
Atlas 在其上预配主机的云服务提供商。
AWS
Amazon Amazon Web Services
GCP
Google Cloud Platform
AZURE
Microsoft Azure
spec.deploymentSpec.replicationSpecs.regionConfigs.regionName
类型:字符串
可选的
MongoDB 集群的物理位置。 您选择的区域会影响客户端访问数据库的网络延迟。
有关区域名称值的完整列表,请参阅云提供商参考页面:
对于多区域集群,请参阅
spec.deploymentSpec.replicationSpecs
。 您必须设置spec.deploymentSpec.replicationSpecs.regionConfigs.regionName
或spec.deploymentSpec.replicationSpecs
。
spec.deploymentSpec.replicationSpecs.regionConfigs.readOnlySpecs
类型:对象
Optional
地区中只读节点的硬件规格。只读节点永远不能成为主节点,但可以启用本地读取。
如果不指定此参数,Atlas 不会向该区域部署只读节点。
spec.deploymentSpec.replicationSpecs.zoneName
类型:字符串
Optional
人类可读标签,用于标识Global Cluster中的区域。 仅当您将
spec.deploymentSpec.clusterType
设置为GEOSHARDED
时才提供此值。
spec.deploymentSpec.searchIndexes
类型:数组
Optional
SearchIndex
对象的数组,其中包含描述Atlas Search索引的字段。 每个SearchIndex
对象都包含以下字段:字段类型说明name
字符串
标识此索引的人类可读标签。 对于部署必须是唯一的。
DBName
字符串
人类可读标签,用于标识包含具有一个或多个 Atlas Search 索引的集合的现有数据库。
重要提示:您指定的数据库必须已经存在。 如果您没有现有数据库,请创建一个。
collectionName
字符串
可读标签,用于标识包含一个或多个 Atlas Search 索引的集合。
type
字符串
索引的类型。Atlas 接受以下值:
search
vectorSearch
search
对象
如果
type
为search
,则必须包含此对象。 否则,省略它。vectorSearch
对象
如果
type
为vectorSearch
,则必须包含此对象。 否则,省略它。
spec.deploymentSpec.searchIndexes.search
类型:对象
Optional
字段类型说明synonyms
阵列
将单词映射到此索引中的同义词的规则集
mappings
对象
集合字段的索引规范
必需
searchConfigurationRef
对象
对 AtlasSearchIndexConfig 自定义资源的名称/命名空间引用,如下所述。
必需
spec.deploymentSpec.searchIndexes.search.synonyms
类型:数组
Optional
Synonym
对象的数组,其中包含描述规则集的字段,这些规则集将单词映射到该索引中的同义词。 每个Synonym
对象都包含以下字段:字段类型说明name
字符串
标识同义词定义的人类可读标签。 在同一索引定义中,每个名称必须是唯一的
必需
analyzer
字符串
选择应用于要搜索的同义词的特定预定义方法。 可能的值为:
lucene.standard
lucene.standard
lucene.simple
lucene.whitespace
lucene.keyword
lucene.arabic
lucene.armenian
lucene.basque
lucene.bengali
lucene.brazilian
lucene.bulgarian
lucene.catalan
lucene.chinese
lucene.cjk
lucene.czech
lucene.danish
lucene.dutch
lucene.english
lucene.finnish
lucene.french
lucene.galician
lucene.german
lucene.greek
lucene.hindi
lucene.hungarian
lucene.indonesian
lucene.irish
lucene.italian
lucene.japanese
lucene.korean
lucene.kuromoji
lucene.latvian
lucene.lithuanian
lucene.morfologik
lucene.nori
lucene.norwegian
lucene.persian
lucene.portuguese
lucene.romanian
lucene. Russian
lucene.smartcn
lucene.sorani
lucene.spanish
lucene.swedish
lucene.thai
lucene.turkish
lucene.ukrainian
必需
source
对象
存储一个或多个单词到一个或多个同义词的映射关系的数据集
必需
spec.deploymentSpec.searchIndexes.search.synonyms.source
类型:对象
必需
字段类型说明collection
字符串
人类可读标签,用于标识存储单词及其适用同义词的 MongoDB 集合
必需
spec.deploymentSpec.searchIndexes.search.mappings
类型:对象
必需
具有集合字段索引规范的对象:
dynamic
布尔指示索引是使用动态映射还是静态映射的标志。 如果省略 mappings.fields,则为必填项。fields
JSON/YAML
Atlas Search 索引的一个或多个字段规范。 如果省略 mappings.dynamic 或设置为 false,则为必填项。
spec.deploymentSpec.searchIndexes.vectorSearch
类型:对象
Optional
字段类型说明fields
JSON/YAML
JSON 对象数组。 请参阅示例 https://dochub.mongodb.org/core/avs-vector-type
必需
spec.deploymentSpec.searchNodes
类型:数组
Optional
Atlas Search节点配置的数组。 每个元素包含两个字段:
字段类型说明nodeCount
整型
集群中的Atlas Search节点数。 Atlas 接受2到32 (含)的值。 默认数字为
2
。instanceSize
字符串
Atlas Search节点实例大小的硬件规格。 Atlas 接受以下任一条件:
S20_HIGHCPU_NVME
S30_HIGHCPU_NVME
S40_HIGHCPU_NVME
S50_HIGHCPU_NVME
S60_HIGHCPU_NVME
S70_HIGHCPU_NVME
S80_HIGHCPU_NVME
S30_LOWCPU_NVME
S40_LOWCPU_NVME
S50_LOWCPU_NVME
S60_LOWCPU_NVME
S80_LOWCPU_NVME
S90_LOWCPU_NVME
S100_LOWCPU_NVME
默认实例大小为
S20_HIGHCPU_NVME
。
spec.deploymentSpec.versionReleaseSystem
类型:字符串
可选的
Atlas 用于该集群的发布节奏。 Atlas 接受:
CONTINUOUS
:Atlas 使用最新的 MongoDB 版本创建集群。 Atlas 会自动将您的集群更新到最新的主要 MongoDB 快速版本。LTS
:Atlas 会使用您在spec.deploymentSpec.mongoDBMajorVersion
参数中指定的 MongoDB 版本的最新补丁版本创建集群。 Atlas 会自动将集群更新到此 MongoDB 版本的后续补丁版本。 即使有较新的快速版本或主要 MongoDB 版本可用,Atlas 也不会将集群更新到这些版本。如果省略,则默认值为
LTS
。如果将此参数设置为
CONTINUOUS
,则必须省略spec.deploymentSpec.mongoDBMajorVersion
参数。
spec.externalProjectRef.id
类型:字符串
可选的
部署所属项目的ID 。 您必须指定现有Atlas项目的项目ID 。对于属于以下任一组织托管的项目的部署,需要此参数:
Atlas Kubernetes Operator的不同实例
Atlas Kubernetes Operator以外的工具
对于属于同一Atlas Kubernetes Operator实例托管的项目的部署,如果不使用
spec.externalProjectRef.id
,请使用spec.projectRef.name
。
spec.processArgs
类型:对象
Optional
包含集群其他配置选项的对象。
spec.processArgs.defaultReadConcern
类型:字符串
Optional
string ,表示为此集群设立的读操作从MongoDB请求的默认确认级别。
MongoDB 5.0集群默认为本地。
spec.processArgs.defaultWriteConcern
类型:字符串
Optional
string ,表示MongoDB为此集群设置的写入操作请求的默认确认级别。
MongoDB 5.0及更高版本的集群默认为“多数”。
spec.processArgs.failIndexKeyTooLong
类型:布尔值
Optional
标志,用于指示在插入或更新所有索引条目都超过1024字节的文档时是否使操作失败并返回错误。 如果将其设置为
false
,mongod
会写入超过此限制的文档,但不会对其进行索引。此选项对应于
param.failIndexKeyTooLong
mongod
参数。
spec.processArgs.javascriptEnabled
类型:布尔值
Optional
指示集群是否允许执行服务器端执行 JavaScript 的操作的标志。
此选项对应于修改集群中每个
security.javascriptEnabled
mongod
和mongos
的 配置文件选项。
spec.processArgs.minimumEnabledTlsProtocol
类型:整型
Optional
字符串,表示集群接受的传入连接的最低 TLS 版本。使用 TLS 1.0 或 1.1 的集群应考虑将 TLS 1.2 设置为最低 TLS 协议版本。
要了解更多信息,请参阅Atlas 支持哪些 TLS 版本?
此选项对应于
net.ssl.disabledProtocols
mongod
配置文件选项。
spec.processArgs.noTableScan
类型:布尔值
Optional
该标志指示集群是否禁用执行需要集合扫描才能返回结果的查询。
此选项对应于
notablescan
mongod
参数。
spec.processArgs.oplogSizeMB
类型:整型
Optional
指示集群 oplog 存储限制的数字,以兆字节为单位。 值为
null
表示集群使用 Atlas 计算的默认 oplog 大小。此选项对应于
replication.oplogSizeMB
mongod
配置文件选项。
spec.processArgs.sampleRefreshIntervalBIConnector
类型:整型
Optional
收集模式信息时要采样的表明每个数据库的文档数。
该参数对应于sampleSize mongsqld选项。
spec.processArgs.sampleSizeBIConnector
类型:整型
Optional
数字,表示mongsqld 进程重新采样数据以创建其关系模式的时间间隔(以秒为单位)。
此参数对应于sampleRefreshIntervalSecs mongsqld选项。
spec.projectRef.name
类型:字符串
可选的
部署所属项目的名称。 您必须指定现有的
AtlasProject
自定义资源。此参数仅适用于属于由同一实例Atlas Kubernetes Operator托管的项目的部署。对于属于以下任一机构托管的项目的部署:
Atlas Kubernetes Operator的不同实例
Atlas Kubernetes Operator以外的工具
使用
spec.externalProjectRef.id
。
spec.serverlessSpec
类型:数组
可选的
包含来自API的无服务器实例参数的列表。有关可用参数的完整列表,请参阅Atlas无服务器实例API。
重要
您必须在配置中指定
spec.deploymentSpec
或spec.serverlessSpec
。
spec.serverlessSpec.providerSettings
类型:对象
可选的
为运行MongoDB的预配主机指定设置的配置。可用选项特定于云服务提供商。要学习;了解更多信息,请参阅 AWS 、 GCP和Azure无服务器实例配置选项。
如果要创建或更新无服务器实例,必须指定此设置。
重要
以下设置已弃用,并将在未来版本中删除:
spec.serverlessSpec.providerSettings.DiskIOPS
spec.serverlessSpec.providerSettings.DiskTypeName
spec.serverlessSpec.providerSettings.EncryptEBSVolume
spec.serverlessSpec.providerSettings.InstanceSizeName
spec.serverlessSpec.providerSettings.VolumeType
spec.serverlessSpec.providerSettings.AutoScaling
为其中任何设置提供值都不起作用。
spec.serverlessSpec.providerSettings.providerName
类型:字符串
可选的
Atlas 配置无服务器实例主机的云服务提供商。
Atlas 接受以下值:
AWS
Amazon Amazon Web Services
GCP
Google Cloud Platform
AZURE
Microsoft Azure
spec.serverlessSpec.providerSettings.regionName
类型:字符串
可选的
MongoDB 无服务器实例的物理位置。 您选择的区域会影响客户端访问数据库的网络延迟。
有关区域名称值的完整列表,请参阅云提供商参考页面:
status.connectionStrings
类型:数组
必需
列表,其中包含用于访问集群的连接 URL。 该参数会在创建或更新集群后出现。
注意
您不能直接使用连接 URL。 Atlas 集群需要身份验证。 您必须创建至少一个
AtlasDatabaseUser
自定义资源,Kubernetes 集群中的应用程序才能连接到 Atlas 集群。 Atlas Kubernetes Operator 创建一个特殊 密钥 项目中的每个集群和数据库用户组合。Kubernetes 集群中的应用程序可以使用此 密钥 连接到 Atlas 集群。AtlasDatabaseUser
自定义资源中的spec.scopes
参数限制创建数据库用户的集群。
有关API中适用于集群的配置参数,请参阅 Atlas集群 API。
注意
以下参数在 Atlas API 中已弃用,Atlas Kubernetes Operator 不支持这些参数:
replicationSpec
replicationFactor