Docs 菜单
Docs 主页
/ /
MongoDB Atlas Kubernetes Operator
/

AtlasDeployment 自定义资源

在此页面上

  • 示例
  • 状态示例
  • 配置示例
  • 其他选项示例
  • 无服务器实例示例
  • 多区域集群示例
  • 多个云服务提供商示例
  • Atlas Search索引示例
  • Atlas Search节点示例
  • 参数

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 之前使用deploymentSpec2.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状态为TrueAtlasDeployment资源:

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

以下示例显示了配置为集合 listingsAndReviewsgrades 创建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节点的 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自定义资源参数。

要自定义规范,请参阅这些描述、可用示例和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会回退到以下任一项:

  • 父级 atlasProjectspec.connectionSecretRef.name 参数

  • 默认global 密钥(如果未为父 atlasProject 定义 spec.connectionSecretRef.name

对于独立的 CRD,此参数为必填项。

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.deploymentSpecspec.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.collection

类型:字符串

必需

要在此“全局集群”中管理的集合的人类可读标签。

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 的集群。

您必须部署 MongoDB 7.0。

您可以指定此参数。

Atlas 始终使用发布了最新稳定补丁的指定版本部署该集群。

您设立spec.deploymentSpec.versionReleaseSystem 参数设置为CONTINUOUS

您必须省略此参数。

spec.deploymentSpec.pitEnabled

类型:布尔值

可选的

启用连续云备份的配置。 要启用连续云备份,必须为此设置指定true

spec.deploymentSpec.replicationSpecs

类型:对象数组

可选的

包含集群区域配置的列表。 将此参数用于多区域集群。 您必须设置spec.deploymentSpec.replicationSpecs.regionConfigs.regionNamespec.deploymentSpec.replicationSpecs

什么时候应该使用这个参数?

条件
必要性
Values

您正在部署全球集群。

必需

数组中的每个对象都代表 Atlas 部署 集群节点的区域。

您正在部署非全局副本集和分片集群。

Optional

该数组中有一个对象代表 Atlas 部署集群节点的位置。

如果指定此参数,则还必须指定spec.deploymentSpec.clusterTypespec.deploymentSpec.replicationSpecs.numShards

spec.deploymentSpec.replicationSpecs.numShards

类型:整型

可选的

正整数,指定要为分片集群部署的分片数量。

如果使用spec.deploymentSpec.replicationSpecs参数,则必须设置此参数。

Atlas 接受150 (含)。 默认值为1

  • 如果您指定值1设立spec.deploymentSpec.clusterType设置为SHARDED ,则Atlas将部署单分片的分片分片集群。

  • 如果您指定1设立spec.deploymentSpec.clusterType设置为REPLICASET ,则Atlas会部署副本集。

    不要为生产环境创建单分片的分片集群。单分片的分片集群无法提供与多分片配置相同的优势。

    提示

    另请参阅:

警告

当您使用分片集群时, MongoDB要求您的应用程序连接到mongos 实例,以确保您的应用程序与分片分片集群的分片和其他组件正确交互。如果您从副本集迁移到分分片集群,则您的应用程序必须重新启用才能连接到集群的mongos 。因此, Atlas Admin API会阻止您将副本集直接迁移到具有多个分片片的分分片集群。 成功将副本集迁移到单个分分片集群并重置应用程序连接后,您可以向集群添加其他分片。

spec.deploymentSpec.replicationSpecs.regionConfigs

类型:数组

必需

为地区设置的节点的硬件规格。每个regionConfigs对象都描述了该地区在选举中的优先级以及 Atlas 部署到该地区的 MongoDB 节点的数量和类型。

每个regionConfigs对象必须具有analyticsSpecs对象、 electableSpecs对象或readOnlySpecs对象。

  • M0M2M5集群仅需要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

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 ServicesGCPAzure自定义存储大小。

如果部署分片集群或全局集群,则必须选择M30或更大的实例大小。

如果您在部署集群后更改实例大小名称,Atlas 会将数据库部署更改为您指定的实例大小,除非它超出您在启用自动伸缩的情况下在spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSizespec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize中指定的范围。 要了解详情,请参阅spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.minInstanceSizespec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.maxInstanceSize

注意

如果您为计算字段启用了自动扩展,则无法编辑此选项。 要了解详情,请参阅spec.deploymentSpec.replicationSpecs.regionConfigs.autoScaling.compute.enabled

注意

您可以更改此设置,升级M0M2M5 或 Flex集群升级到 M10+集群。但是,您无法升级M0M2M5`, 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总和必须为357

如果spec.deploymentSpec.replicationSpecs.regionConfigs.priority0 ,则无法创建可选举节点。

spec.deploymentSpec.replicationSpecs.regionConfigs.priority

类型:整型

必需

选举主节点时,优先考虑该地区。

如果您的regionConfigs只有readOnlySpecs和/或analyticsSpecs ,请将此值设置为0

如果您有多个regionConfigs对象(您的集群是多地区或多云),则它们的优先级必须按降序排列。最高优先级为7

例子

将最高优先级区域设置为7 ,将第二高优先级区域设置为6 ,将第三优先级区域设置为5 。 如果没有可选举节点,请将此值设置为0

如果您的地区已将electableSpecs.nodeCount设置为1或更高,则其优先级必须比replicationSpecs.regionConfigs数组中的另一地区低一级,除非是主节点。优先级最高的区域的优先级必须7 。 可能的最低优先级是1

优先级7地区标识集群的首选地区。Atlas 将主节点置于“首选地区”中。优先级17具有排他性:您不能为每个集群的多个地区分配给定优先级。

例子

如果有三个区域,则它们的优先级将分别为765 。 如果您再添加两个区域来支持可选举节点,则这些区域的优先级将分别为43

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.regionNamespec.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

对象

如果typesearch ,则必须包含此对象。 否则,省略它。

vectorSearch

对象

如果typevectorSearch ,则必须包含此对象。 否则,省略它。

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.tags

类型:数组

Optional

包含标签(键值对)的列表,以便更好地了解、组织和识别数据库部署。 要了解更多信息,请参阅集群上的标签。

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字节的文档时是否使操作失败并返回错误。 如果将其设置为falsemongod会写入超过此限制的文档,但不会对其进行索引。

此选项对应于param.failIndexKeyTooLong mongod参数。

spec.processArgs.javascriptEnabled

类型:布尔值

Optional

指示集群是否允许执行服务器端执行 JavaScript 的操作的标志。

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.deploymentSpecspec.serverlessSpec

spec.serverlessSpec.privateEndpoints

类型:数组

Optional

包含无服务器实例的私有端点配置的列表。

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 无服务器实例的物理位置。 您选择的区域会影响客户端访问数据库的网络延迟。

有关区域名称值的完整列表,请参阅云提供商参考页面:

spec.serverlessSpec.tags

类型:数组

Optional

包含标签(键值对)的列表,以便更好地了解、组织和识别数据库部署。 要了解更多信息,请参阅集群上的标签。

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

后退

Atlas 项目