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

自定义资源

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

Resource
说明

配置备份策略以备份集群 Atlas。

配置备份安排以备份你的集群Atlas。

Atlas 中某些项目内部集群的配置。

Atlas 某些项目中数据库用户的配置。

Atlas 中项目的配置。

在 Atlas 中配置项目团队。

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

在 Atlas 中配置联合身份验证。

重要

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

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 时,您可以创建新的 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 版本的主要版本,则最新功能可能无法使用。 次要版本差异是向后兼容的。

后退

第三方服务

在此页面上