设置 Data Federation
在此页面上
本教程演示如何使用 Atlas Kubernetes Operator 从 Kubernetes 配置文件在 Atlas 中创建联合数据库实例。The federated database instance in this tutorial connects an AWS S3 bucket and an Atlas cluster.
先决条件
本教程要求:
部署了Atlas Kubernetes Operator 的运行的Kubernetes集群,包括
AtlasProject
自定义资源。有权修改 IAM 角色的 Amazon Web Services 用户帐户。
步骤
重要
自定义资源不再默认删除对象
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从Kubernetes中的Atlas项目中删除团队,则Atlas Kubernetes Operator不会从Atlas中删除团队。
在Atlas中创建 AWS IAM 角色
运行以下 Atlas CLI 命令以在 Atlas 中创建新的Amazon Web Services IAM角色。将以下占位符替换为您的值:
占位符说明PROJECT-ID
唯一的 24 个字符的十六进制字符串,用于标识要使用的 Atlas 项目。atlas cloudProviders accessRoles aws create --projectId <PROJECT-ID> 请注意返回的字段值
RoleID
、Atlas AWS Account ARN
和Unique External ID
:AWS IAM role '<RoleID>' successfully created. Atlas AWS Account ARN: <AtlasAWSAccountARN> Unique External ID: <AtlasAssumedRoleExternalID>
修改 AWS IAM 角色信任策略。
登录 AWS 管理控制台。
导航到 Identity and Access Management (IAM)服务。
从左侧导航栏中选择 Roles 。
单击角色列表中您希望用于 Atlas 访问的现有 IAM 角色。
选择 Trust Relationships 标签页。
单击 Edit trust relationship 按钮。
编辑 Policy Document。添加包含以下内容的新
Statement
对象。注意
将突出显示的行替换为上一步返回的值。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] } 单击 Update Trust Policy 按钮。
创建AtlasDataFederation
自定义资源。
运行以下命令以创建AtlasDataFederation
自定义资源。 roleId
应与上一步中为RoleID
返回的值匹配,而spec.projectRef.name
应与AtlasProject
自定义资源的名称匹配:
cat <<EOF | kubectl apply -f - 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 EOF
采取后续步骤
要为联合数据库实例配置私有端点,请参阅托管私有端点。