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

自定义资源

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

Resource
说明

AtlasBackupPolicy 自定义资源

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

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

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

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

Atlas 中项目的配置。

在 Atlas 中配置项目团队。

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

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

重要

自定义资源定义优先

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

使用 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

如果您从 Kubernetes 中删除自定义资源,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: "keep"注解添加到自定义资源的metadata ,则当您删除 Atlas Kubernetes Operator 资源时,Atlas Kubernetes Operator 不会删除该资源。

例子

apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
annotations:
mongodb.com/atlas-resource-policy: "keep"

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

后退

第三方服务

在此页面上