MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs 菜单
Docs 主页
/ /
/ / /

AtlasNetworkContainer 自定义资源

重要

旧版子资源自相应的 CRD发布以来已被弃用。如果您的配置当前依赖于此资源定义的子资源形式,请迁移到 CRD。

AtlasNetworkContainer 自定义资源定义了Atlas项目的网络容器。您可以在网络容器和托管应用程序的网络之间创建 VPC 对等互连。

重要

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

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

Atlas Kubernetes Operator使用Atlas 网络对等互连API资源执行以下操作之一:

  • 创建新的网络容器。

  • 更新现有网络容器。

以下示例说明了 AtlasNetworkContainer CRD 的配置。

  • 基本示例配置定义了一个资源,您可以使用管理其父Atlas项目的同一Atlas Kubernetes Operator实例来管理该资源。

  • 独立 CRD示例配置与基本示例相同的网络容器,但适用于您在管理网络容器的Atlas Kubernetes Operator实例外部管理的Atlas项目。

下面显示了名为AtlasNetworkContainer 的容器的 自定义资源,它允许您在my-atlas-nc 项目中的Atlas和 Amazon Web Services 之间创建 VPCmy-project 对等互连。要在与其父Atlas项目相同的Atlas Kubernetes Operator实例中管理此资源,您必须使用 projectRef 而不是 externalProjectRef 来标识该项目。

apiVersion: atlas.mongodb.com/v1
kind: AtlasNetworkContainer
metadata:
name: my-atlas-nc
spec:
projectRef:
name: my-project
namespace: my-operator-namespace
provider: AWS
id: 66e2f2b7e69a89b66b621571
cidrBlock: 10.11.0.0/16
region: US_EAST_1

以下示例显示了一个独立于AtlasNetworkContainer 的 CRD,它在与基本示例启用的相同参数下启用VPC对等互连。要启用独立操作,必须使用 externalProjectRef 而不是 projectRef,并且必须直接提供 connectionSecret,因为此资源无法从其父项目继承API凭证。

apiVersion: atlas.mongodb.com/v1
kind: AtlasNetworkContainer
metadata:
name: my-atlas-nc
spec:
externalProjectRef:
projectId: 66e2f2b621571b7e69a89b66
connectionSecret:
name: atlas-connection-secret
provider: AWS
id: 66e2f2b7e69a89b66b621571
cidrBlock: 10.11.0.0/16
region: US_EAST_1

AtlasNetworkContainer 是 AtlasNetworkContainer API的模式

Name
类型
说明
必需

apiVersion

字符串

atlas.mongodb.com/v1

true

kind

字符串

AtlasNetworkContainer

true

metadata

对象

有关 metadata 字段的字段,请参阅 Kubernetes API 文档。

true

spec

对象

AtlasNetworkContainerSpec 定义了 AtlasNetworkContainer 的目标省/市/自治区。验证

  • (has(self.``externalProjectRef``)&& !has(self.``projectRef``))|| (!has(self.``externalProjectRef``)&& has(self.``projectRef``)):只能通过 externalProjectRefprojectRef 定义一个项目引用

  • (has(self.``externalProjectRef``)&& has(self.``connectionSecret``))|| !has(self.``externalProjectRef``):引用外部项目时必须定义本地连接密钥

  • (提供商 == 'GCP' && !has(区域))|| (提供商 != 'GCP'): 不得为 GCP 容器设立区域

  • ((提供商 == 'AWS' || 提供商 == 'AZURE') && has(区域))|| (提供商 == 'GCP'):必须为 AWS 和 Azure 容器设立区域

  • (self.id == oldSelf.id) || (!has(self.id)&& !has(oldSelf.id)):id 不可变

  • (区域 == oldSelf 区域) || (!has(区域)&& !has(oldSelf 区域)):区域不可变

false

status

对象

AtlasNetworkContainerStatusAtlasNetworkContainer 自定义资源的 status。不是包含在 AtlasProject

false

AtlasNetworkContainerSpec 定义了 AtlasNetworkContainer 的目标状态。

Name
类型
说明
必需

provider

枚举

提供商是托管网络容器的云provider 的名称。枚举AWSGCPAZURE

true

cidrBlock

字符串

Atlas CIDR。如果未设立ContainerID,则需要进行设立。

false

connectionSecret

对象

包含Atlas API 私钥和公钥的密钥名称。

false

externalProjectRef

对象

externalProjectRef 包含父Atlas项目ID。与“projectRef”字段互斥。

false

id

字符串

ID 是要由操作符托管的已存在网络容器的容器标识符。此字段可与 cidrBlock 结合使用,以更新现有容器的 cidrBlock。该字段不可变。

false

projectRef

对象

projectRef 是对父 AtlasProject资源的引用。与“externalProjectRef”字段互斥。

false

region

字符串

ContainerRegion 是Atlas网络对等互连容器的提供商region名称,采用Atlas region格式。这是AWS和Azure所必需的,但GCP未使用。该字段不可变,Atlas不接受网络容器更改。

false

包含Atlas API私钥和公钥的密钥名称。

externalProjectRef 保存父Atlas群组 ID(group ID)。与 "projectRef"字段互斥。

Name
类型
说明
必需

id

字符串

ID 是Atlas项目ID

true

projectRef 是对父 AtlasProject资源的引用。与 "externalProjectRef"字段互斥。

Name
类型
说明
必需

name

字符串

Kubernetes资源名称

true

namespace

字符串

Kubernetes资源的命名空间

false

AtlasNetworkContainerStatus 是 AtlasNetworkContainer 自定义资源的状态。不是 AtlasProject 中包含的

Name
类型
说明
必需

conditions

[]对象

条件是显示Atlas自定义资源当前省/市/自治区的列表

true

id

字符串

ID 在Atlas中记录容器的标识符

false

observedGeneration

整型

ObservedGeneration 表示 Atlas 操作符 感知的资源规范的生成。Atlas Operator 将此字段更新为“元数据.Generation ”的值一旦开始资源协调。格式:int64

false

provisioned

布尔

如果在上次协调之前将集群部署到容器,则预配为 true

false

条件描述了Atlas自定义资源在某一点的省/市/自治区。

Name
类型
说明
必需

status

字符串

条件的状态; True、False、未知之一。

true

type

字符串

Atlas自定义资源条件的类型。

true

lastTransitionTime

字符串

上次条件从一种状态转换为另一种状态的时间。以 ISO 8601 格式表示。格式:日期-时间

false

message

字符串

提供有关转换的详细信息的 message

false

reason

字符串

条件的最后一次转换的 reason

false

后退

AtlasIPAccessList

在此页面上