注意
Atlas Kubernetes Operator 不支持 Atlas for 政府 的AtlasDataFederation自定义资源。
AtlasDataFederation 自定义资源在Atlas中配置 联合数据库实例。当您创建 AtlasDataFederation 自定义资源时, Atlas Kubernetes Operator会尝试在Atlas中创建或更新联合数据库实例。您可以使用联合数据库实例来运行联合查询。
重要
自定义资源不再默认删除对象
Atlas Kubernetes Operator使用 自定义资源配置文件来管理Atlas配置,但从Atlas Kubernetes Operator2.0 开始,您在Kubernetes中删除的自定义资源不再(默认)在Atlas中删除。相反, Atlas Kubernetes Operator只是停止管理Atlas中的这些资源。
AtlasProject示例,如果您在Kubernetes中删除 自定义资源,默认默认, Atlas Kubernetes Operator不再自动从Atlas中删除相应的项目。这种行为更改旨在帮助防止意外删除。 要学习;了解详情,包括如何将此行为恢复为Atlas Kubernetes Operator2 0之前使用的默认行为,请参阅新的默认值: Atlas Kubernetes Operator2 中的删除保护。0 。同样,如果您使用Atlas Kubernetes Operator从Kubernetes中的Atlas项目中删除团队,则Atlas Kubernetes Operator不会从Atlas中删除团队。
显式定义所需的配置详细信息,以避免隐式使用默认Atlas配置值。 在某些情况下,继承Atlas默认值可能会导致协调循环,从而阻止自定义资源实现
READY状态。 示例,在AtlasDeployment自定义资源中显式定义所需的自动伸缩行为(如所包含的示例所示)可确保自定义资源中的静态实例大小不会重复应用于已启用自动伸缩的Atlas部署。autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
Atlas Kubernetes Operator 使用 Atlas集群 API 资源和高级集群 API 资源来创建新的联合数据库实例或更新现有的联合数据库实例。 如果您指定spec.serverlessSpec下的字段值,Atlas Kubernetes Operator 将使用 Atlas Serverless Instance API 资源为联合数据库实例创建或配置私有端点。
如果您从 Kubernetes 集群中删除AtlasDataFederation资源,Atlas Kubernetes Operator 将从 Atlas 中删除联合数据库实例。
示例
以下示例显示了已配置私有端点的AtlasDataFederation自定义资源规范:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDataFederation metadata: name: my-federated-deployment spec: projectRef: name: my-project namespace: default cloudProviderConfig: aws: roleId: 12345678 testS3Bucket: my-bucket dataProcessRegion: cloudProvider: AWS region: OREGON_USA name: my-fdi storage: databases: - collections: - dataSources: - allowInsecure: false collection: my-collection collectionRegex: database: my-database databaseRegex: defaultFormat: ".avro" path: / provenanceFieldName: string storeName: my-data-store urls: - string: name: my-collection-mdb maxWildcardCollections: 100 name: my-database-mdb views: - name: my-view pipeline: source: my-source-collection stores: - name: my-store provider: S3 additionalStorageClasses: - STANDARD bucket: my-bucket delimiter: / includeTags: false prefix: data- public: false region: US_WEST_1 privateEndpoints: - endpointId: vpce-3bf78b0ddee411ba1 provider: AWS type: DATA_LAKE - endpointId: vpce-3bf78b0ddee411ba2 provider: AWS type: DATA_LAKE
参数
本部分介绍一些可用的关键AtlasDataFederation自定义资源参数。 有关可用参数的完整列表,请参阅 Atlas Data Federation API。
请参阅这些说明、可用示例和 API文档,自定义您的规范。
metadata.name类型:字符串
必需
用于标识 Atlas Kubernetes Operator 用于将此联合数据库实例添加到项目的
AtlasDataFederation自定义资源的标签。
spec.cloudProviderConfig类型:对象
必需
包含联合数据库实例的云提供商配置的列表。
spec.cloudProviderConfig.aws类型:对象
必需
托管联合数据库实例的云服务提供商的名称。
spec.cloudProviderConfig.aws.roleId类型:字符串
必需
联合数据库实例可用于访问数据存储的角色的唯一标识符。
spec.cloudProviderConfig.aws.testS3Bucket类型:字符串
必需
所提供的角色 ID 有权访问的 S3 数据存储桶的名称。
spec.dataProcessRegion类型:对象
必需
有关联合数据库实例将客户端连接路由到的云提供商区域的信息。 Atlas Kubernetes Operator 支持仅Amazon Web Services 。
spec.dataProcessRegion.cloudProvider类型:字符串
必需
托管联合数据库实例的数据存储的云服务提供商的名称。 Atlas Kubernetes Operator 接受以下值:
AWSTENANTSERVERLESS
spec.dataProcessRegion.region类型:字符串
必需
指示联合数据库实例的数据存储地理位置的标签。 Atlas Kubernetes Operator 接受以下值:
SYDNEY_AUSMUMBAI_INDFRANKFURT_DEUDUBLIN_IRLLONDON_GBRVIRGINIA_USAOREGON_USASAOPAULO_BRASINGAPORE_SGP
spec.name类型:字符串
Optional
用于标识 Atlas 中联合数据库实例的标签。
spec.storage类型:对象
Optional
每个数据存储的配置信息及其到 Atlas 数据库的映射。
spec.storage.databases类型:数组
Optional
包含此联合数据库实例的可查询数据库和collection的列表。
spec.storage.databases.collections类型:数组
Optional
映射到
stores数据存储的collection和数据源的列表。
spec.storage.databases.collections.dataSources类型:数组
Optional
列表,其中包含映射到此联合数据库实例的集合的数据存储。
spec.storage.databases.collections.dataSources.allowInsecure类型:布尔值
Optional
用于验证指定 URL 中的方案的标志。 如果
true,Atlas Kubernetes Operator 允许不安全的HTTP方案,不验证服务器的证书链和主机名,并接受服务器提供的具有任何主机名的任何证书。 如果为false,Atlas Kubernetes Operator仅允许保护HTTPS方案。
spec.storage.databases.collections.dataSources.collection类型:字符串
Optional
人类可读标签,用于标识数据库中的集合。 要创建通配符 (
*) collection,必须省略此参数。
spec.storage.databases.collections.dataSources.collectionRegex类型:字符串
Optional
用于创建通配符 (
*) collection的正则表达式模式。
spec.storage.databases.collections.dataSources.database类型:字符串
Optional
用于标识数据库的人类可读标签,其中包含集群中的collection。您必须省略此参数才能为动态生成的数据库生成通配符 (
*) collection。
spec.storage.databases.collections.dataSources.databaseRegex类型:字符串
Optional
用于创建通配符 (
*) 数据库的正则表达式模式。
spec.storage.databases.collections.dataSources.defaultFormat类型:字符串
Optional
如果 Atlas Kubernetes Operator 在搜索
storeName时遇到没有文件扩展名的文件,它使用的文件格式。Atlas Kubernetes Operator 接受以下值:.avro.avro.bz2.avro.gz.bson.bson.bz2.bson.gz.bsonx.csv.csv.bz2.csv.gz.json.json.bz2.json.gz.orc.parquet.tsv.tsv.bz2.tsv.gz
spec.storage.databases.collections.dataSources.path类型:字符串
Optional
文件路径,用于控制 Atlas Kubernetes Operator 在将文件映射到collection之前如何搜索和解析
storeName中的文件。指定/以捕获前缀路径中的所有文件和文件夹。
spec.storage.databases.collections.dataSources.provenanceFieldName类型:字符串
Optional
人类可读标签,用于标识结果中包含文档来源的字段。 Atlas Kubernetes Operator 在结果中为每个支持的提供商返回不同的字段。
spec.storage.databases.collections.dataSources.storeName类型:字符串
Optional
人类可读标签,用于标识 Atlas Kubernetes Operator 映射到collection的数据存储。
spec.storage.databases.collections.dataSources.urls类型:数组
Optional
可公开访问的数据文件的 URL。 不能指定需要身份验证的 URL。 Atlas Data Federation 会为每个 URL 创建一个分区。 如果为空或省略,Atlas Data Federation 将使用dataSources.storeName参数中指定的存储中的 URL。
spec.storage.databases.collections.name类型:字符串
Optional
人类可读标签,用于标识 Atlas Kubernetes Operator 将数据存储中的数据映射到的collection。
spec.storage.databases.maxWildcardCollections类型:int32
Optional
数据库中通配符collection的最大数量。这仅适用于 S3 数据源。 默认值为
100。
spec.storage.databases.name类型:字符串
Optional
人类可读标签,用于标识联合数据库实例将数据映射到的数据库。
spec.storage.databases.views类型:数组
Optional
应用于collection的聚合管道列表。这仅适用于 S3 数据源。
spec.storage.databases.views.name类型:字符串
Optional
用于标识视图的人类可读标签,对应于collection上的聚合管道。
spec.storage.databases.views.pipeline类型:字符串
Optional
要应用于源collection的聚合管道阶段。
spec.storage.databases.views.source类型:字符串
Optional
人类可读标签,用于标识视图的源集合。
spec.storage.stores类型:数组
Optional
包含联合数据库实例的数据存储的列表。
spec.storage.stores.name类型:字符串
Optional
用于标识数据存储的人类可读标签。 spec.storage.databases.collections.dataSources.storeName字段引用这些值作为映射配置的一部分。
spec.storage.stores.provider类型:字符串
可选的
商店的提供商。 Atlas Kubernetes Operator 仅支持
S3。 您必须指定此字段才能使用数据存储。
spec.storage.stores.additionalStorageClasses类型:数组
Optional
AWS S3 存储类的集合。 Atlas Data Federation 在查询结果中包含这些存储类中的文件。 Atlas Kubernetes Operator 接受以下值:
STANDARDINTELLIGENT_TIERINGSTANDARD_IA
spec.storage.stores.bucket类型:字符串
Optional
用于标识Amazon Web Services S3 存储桶的人类可读标签。此标签必须与联合数据库实例可以使用配置的Amazon Web Services IAM 档案访问的 S3 存储桶的名称完全匹配。
spec.storage.stores.delimiter类型:字符串
Optional
分隔数据存储中的spec.storage.databases.collections.dataSources.path段的分隔符。 Atlas Kubernetes Operator 使用分隔符有效地遍历具有分层目录结构的 S 3存储桶。 您可以指定 S 3对象键支持的任何字符作为分隔符。 例如,您可以指定下划线 (
_) 或加号 (+) 或多个字符(例如双下划线 (__))作为分隔符。 如果省略,则默认为/。
spec.storage.stores.includeTags类型:布尔值
Optional
指示是否在给定路径中的文件上使用 S3 标签作为附加分区属性的标志。 如果设置为 true,Atlas Kubernetes Operator 会将 S3 标签添加为附加分区属性,并添加将每个标签与每个文档关联的新的顶级 BSON 元素。如果省略,则默认为
false。
spec.storage.stores.prefix类型:字符串
Optional
Atlas Kubernetes Operator 在 S 3存储桶中搜索文件时应用的前缀。 数据存储将 prefix 的值添加到spec.storage.databases.collections.dataSources.path 之前,以创建要摄取的文件的完整路径。 如果省略,Atlas Kubernetes Operator 会从 S 3存储桶的根目录开始搜索所有文件。
spec.storage.stores.public类型:布尔值
Optional
指示存储桶是否公开的标志。 如果设置为
true,Atlas Kubernetes Operator 不使用配置的AWS IAM角色访问 S3 存储桶。 如果设置为false,则配置的Amazon Web Services IAM角色必须包含访问 S3 存储桶的权限。
spec.storage.stores.region类型:字符串
Optional
指示 S3 存储桶物理位置的Amazon Web Services地区。
spec.privateEndpoints类型:数组
Optional
包含联合数据库实例的私有端点配置的列表。
spec.privateEndpoints.endpointId类型:字符串
必需
以
vpce-开头的唯一 22 字符字母数字字符串,用于标识Amazon Web Services中的私有端点
spec.privateEndpoints.provider类型:字符串
Optional
用于标识云服务提供商的人类可读标签。 Atlas Data Federation 仅支持
AWS。
spec.privateEndpoints.type类型:字符串
Optional
人类可读标签,用于标识与此私有端点关联的资源类型。 Atlas Data Federation 仅支持
DATA_LAKE。
spec.projectRef.name类型:字符串
必需
联合数据库实例所属项目的名称。 您必须指定现有的
AtlasProject自定义资源。
spec.projectRef.namespace类型:字符串
必需
spec.projectRef.name 中指定的
AtlasProject自定义资源 所在的命名空间。