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

自定义资源

在此页面上

  • 管理Atlas Kubernetes Operator kubectl
  • Atlas Kubernetes Operator 工作流程
  • 创建和更新进程
  • 删除进程
  • 使用注解跳过或覆盖默认值

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

Resource
说明
简称

AtlasBackupCompliancePolicy 自定义资源

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

abcp

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

abp

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

abs

a custom database role to allocate privileges to your database users.

acr

Atlas 中某个项目内的集群。

ad

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

adu

Atlas 中的项目。

ap

Atlas 中的项目团队。

at

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

adf

Private endpoint connection from your chosen cloud provider to Atlas.

ape

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

asic

Atlas Stream Processing 连接。

asc

Atlas Stream Processing 实例。

asi

Atlas 中的联合身份验证。

afa

重要

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

  • Atlas Kubernetes Operator使用自定义资源配置文件来管理Atlas配置,但从Atlas Kubernetes Operator2.0 开始,您在Kubernetes中删除的自定义资源不再(默认)在Atlas中删除。相反, Atlas Kubernetes Operator只是停止管理Atlas中的这些资源。示例,如果您在Kubernetes中删除AtlasProject 自定义资源,默认, Atlas Kubernetes Operator不再自动从Atlas中删除相应的项目。这种行为更改旨在帮助防止意外删除。要学习;了解详情,包括如何将此行为恢复为Atlas Kubernetes Operator2 之前使用的默认行为。0 ,请参阅新默认值: Atlas Kubernetes Operator中的删除保护2 。0 。

    同样,如果您使用Atlas Kubernetes Operator从Kubernetes中的Atlas项目中删除团队,则Atlas Kubernetes Operator不会从Atlas中删除团队。

  • 显式定义所需的配置详细信息,以避免隐式使用默认Atlas配置值。在某些情况下,继承Atlas默认值可能会导致协调循环,从而阻止自定义资源实现 READY 状态。示例,在 AtlasDeployment 自定义资源中显式定义所需的自动伸缩行为(如所包含的示例所示)可确保自定义资源中的静态实例大小不会重复应用于已启用自动伸缩的Atlas部署。

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40

要使用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 的访问权限。

每次更改任何支持的自定义资源中的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 版本的主要版本,则最新功能可能无法使用。 次要版本差异是向后兼容的。

后退

第三方服务