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

设置 Data Federation

本教程演示如何使用Atlas Kubernetes Operator从Kubernetes配置文件在Atlas中创建联合数据库实例。本教程中的联合数据库实例连接一个 Amazon Web Services S3 存储桶和一个Atlas 集群。

本教程要求:

重要

自定义资源定义优先

Atlas Kubernetes Operator使用自定义资源配置文件来管理Atlas配置。 每个自定义资源定义都会覆盖以其他方式指定的设置,例如在Atlas用户界面中。 如果您删除自定义资源, Atlas Kubernetes Operator会从Atlas中删除该对象,除非您使用注解来跳过删除。 要学习;了解更多信息,请参阅创建和更新进程以及删除进程。

1
  1. 运行以下 Atlas CLI 命令以在 Atlas 中创建新的Amazon Web Services IAM角色。将以下占位符替换为您的值:

    占位符
    说明

    PROJECT-ID

    唯一的 24 个字符的十六进制字符串,用于标识要使用的 Atlas 项目。

    atlas cloudProviders accessRoles aws create --projectId <PROJECT-ID>
  2. 请注意返回的字段值RoleIDAtlas AWS Account ARNUnique External ID

    AWS IAM role '<RoleID>' successfully created.
    Atlas AWS Account ARN: <AtlasAWSAccountARN>
    Unique External ID: <AtlasAssumedRoleExternalID>
2
  1. 登录 AWS 管理控制台。

  2. 导航到 Identity and Access Management (IAM)服务。

  3. 从左侧导航栏中选择 Roles

  4. 单击角色列表中您希望用于 Atlas 访问的现有 IAM 角色。

  5. 选择 Trust Relationships 标签页。

  6. 单击 Edit trust relationship 按钮。

  7. 编辑 Policy Document。添加包含以下内容的新 Statement 对象。

    注意

    将突出显示的行替换为上一步返回的值。

    {
    "Version":"2012-10-17",
    "Statement":[
    {
    "Effect":"Allow",
    "Principal":{
    "AWS":"<atlasAWSAccountArn>"
    },
    "Action":"sts:AssumeRole",
    "Condition":{
    "StringEquals":{
    "sts:ExternalId":"<atlasAssumedRoleExternalId>"
    }
    }
    }
    ]
    }
  8. 单击 Update Trust Policy 按钮。

3

运行以下命令以创建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
4

运行以下命令,直到收到True响应,这表明数据库用户已准备就绪:

kubectl get atlasdatafederation my-federated-deployment -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'

要为联合数据库实例配置私有端点,请参阅托管私有端点。

后退

导入项目

在此页面上