Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ /
MongoDB Atlas Kubernetes Operator

自定义资源

Atlas Kubernetes Operator 支持以下自定义资源定义:

Resource
说明
简称

AtlasBackupCompliancePolicy 自定义资源

配置备份合规策略以保护您的备份数据。

abcp

用于备份集群 Atlas 的备份策略。

abp

用于备份集群 Atlas 的备份计划。

abs

Atlas 中某个项目内的集群。

ad

Atlas 中某个项目内的数据库用户。

adu

Atlas 中的项目。

ap

Atlas 中的项目团队。

at

Atlas 中的联合数据库实例及其私有端点。

adf

Atlas 集群中某些集合的索引。

asic

Atlas Stream Processing 连接。

asc

Atlas Stream Processing 实例。

asi

Atlas 中的联合身份验证。

afa

重要

自定义资源不再默认删除对象

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 。

要使用kubectl列出集群中的所有Atlas Kubernetes Operator资源,您可以运行:

kubectl get atlas

为了方便起见,要列出或描述特定类型的Atlas Kubernetes Operator CRD,您可以使用上表中列出的简称。 示例,要列出mongodb命名空间中的所有atlasdatabaseusers ,您可以运行:

kubectl get adu -n mongodb

使用 Atlas Kubernetes Operator 时,您可以创建新的 Atlas 项目,也可以使用现有的 Atlas 项目。

您需要以下公共 API 密钥、私有 API 密钥和组织 ID 信息, 配置 Atlas Kubernetes Operator 对 Atlas 的访问权限。

  • 如果您希望Atlas Kubernetes Operator创建新的Atlas项目,请为组织授予编程访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。

    重要

    您必须为 API 密钥分配 Organization Project Creator组织角色或更高级别的角色。

  • 如果要使用现有Atlas项目,请从项目添加项目访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。

    重要

    您必须为 API 密钥分配 Project Owner 项目角色。

要了解更多信息,请参阅配置对 Atlas 的访问权限。

每次更改任何支持的自定义资源中的spec字段时,Atlas Kubernetes Operator 都会启动以下工作流程:

  1. Atlas Kubernetes Operator 接收有关已更改自定义资源的事件。

  2. Atlas Kubernetes Operator 更新status.conditions字段以反映资源尚未准备就绪:

    conditions:
    - lastTransitionTime: "2021-03-13T16:26:17Z"
    status: "False"
    type: Ready
  3. 要连接到 Atlas Administration API,Atlas Kubernetes Operator 会从以下位置之一读取组织ID 和 API密钥:

  4. 为了在 Atlas 中创建或更新资源,Atlas Kubernetes Operator 使用连接信息对 Atlas 进行API调用。

    注意

    有时,在协调自定义资源期间,Atlas Kubernetes Operator 会在 Atlas 中进行多个API调用。 例如,AtlasProject 具有用于调用匹配 API 的 IP 访问列表 配置。

  5. 如果在协调过程中出现任何错误, status.conditions会进行更新以反映错误。

    例子

    - lastTransitionTime: "2021-03-15T14:26:44Z"
    message: 'POST https://cloud.mongodb.com/api/atlas/v1.0/groups/604a47de73cd8cag77239021/accessList:
    400 (request "INVALID_IP_ADDRESS_OR_CIDR_NOTATION") The address 192.0.2.1dfdfd5
    must be in valid IP address or CIDR notation.'
    reason: ProjectIPAccessListNotCreatedInAtlas
    status: "False"
    type: IPAccessListReady
  6. 如果更新成功,则status.conditions表明资源已准备就绪:

    conditions:
    - lastTransitionTime: "2021-03-13T16:26:17Z"
    status: "True"
    type: Ready

从 Atlas Kubernetes Operator 2.0开始,当您从 Kubernetes 删除自定义资源时,该对象默认保留在 Atlas 中,但 Atlas Kubernetes Operator不再控制该对象。 您可以恢复整个部署的此默认值,或使用注释覆盖特定自定义资源的此默认值,以允许 Atlas Kubernetes Operator 从 Atlas 中删除相应的对象。 如果使用注解进行覆盖,则会开始以下工作流程:

  1. Atlas Kubernetes Operator 收到有关已删除的自定义资源的事件。

  2. 要连接到 Atlas Administration API,Atlas Kubernetes Operator 从以下位置之一读取组织 ID 和API密钥:

  3. 要删除 Atlas 中的资源,Atlas Kubernetes Operator 使用连接信息对 Atlas 进行API调用。

    注意

    Atlas Kubernetes Operator会删除在Kubernetes中创建的任何相关对象。示例,如果删除AtlasDatabaseUser , Atlas Kubernetes Operator也会删除相关的连接密钥。

您可以使用注解来修改 Atlas Kubernetes Operator 的默认行为

  • 如果您将mongodb.com/atlas-resource-policy: "delete"注解添加到自定义资源的metadata,则当您删除Atlas Kubernetes Operator资源时,Atlas Kubernetes Operator会删除Atlas中的相应对象。

    例子

    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    annotations:
    mongodb.com/atlas-resource-policy: "delete"
  • 如果您已将新的删除行为恢复为在 Atlas Kubernetes Operator 2.0 之前使用的默认行为,则可以将mongodb.com/atlas-resource-policy: "keep"注解添加到自定义资源的metadata ,这样当您删除 Atlas Kubernetes Operator 时,Atlas Kubernetes Operator 就不会删除该资源。操作符资源。

  • 如果您将mongodb.com/atlas-reconciliation-policy: "skip"注解添加到自定义资源的metadata中,Atlas Kubernetes Operator 不会启动该资源的协调。此注解允许您暂停与规范的同步,直到您删除该注解。 您可以使用此注解对自定义资源进行手动更改,避免 Atlas Kubernetes Operator 在同步期间撤消这些更改。删除此注解后,Atlas Kubernetes Operator 会协调资源并将其与规范同步。

  • 如果您将mongodb.com/atlas-resource-version-policy: "allow"注解添加到自定义资源的metadata ,则即使资源的版本标签与您正在使用的 Atlas Kubernetes Operator 版本不匹配,Atlas Kubernetes Operator 也会允许您使用该资源。 如果您的资源版本是落后于 Atlas Kubernetes Operator 版本的主要版本,则最新功能可能无法使用。 次要版本差异是向后兼容的。

后退

第三方服务

在此页面上