AtlasNetworkContainer
自定义资源
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
独立 CRD 示例
以下示例显示了一个独立于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
参数。
metadata.name
类型:字符串
必需
AtlasNetworkContainer
自定义资源用于将此网络容器添加到项目中的名称。
spec.connectionSecret.name
类型:字符串
可选的
不透明 密钥 的名称,其中包含Atlas Kubernetes Operator用于 连接 到Atlas的组织ID和 API密钥 。如果未指定, Atlas Kubernetes Operator默认为以下选项之一:
父级
atlasProject
的spec.connectionSecretRef.name
参数默认的
global
密钥(如果您尚未为父项atlasProject
定义spec.connectionSecretRef.name
)
Atlas Kubernetes Operator 仅监视带有标签 的密钥,以避免监视不必要的
atlas.mongodb.com/type=credentials
密钥 。以下示例标记了密钥:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRef.id
类型:字符串
可选的
网络容器所属项目的ID 。您必须指定现有Atlas项目的项目ID 。您必须为属于以下任一机构托管的项目的网络容器指定此参数:
Atlas Kubernetes Operator的不同实例
Atlas Kubernetes Operator以外的工具
对于属于同一Atlas Kubernetes Operator实例托管的项目的部署,请使用
spec.projectRef.name
。这些参数是互斥的。
spec.projectRef.name
类型:字符串
可选的
网络容器所属项目的名称。您必须指定现有的
AtlasProject
自定义资源。此参数仅适用于属于由同一实例Atlas Kubernetes Operator托管的项目的网络容器。对于属于以下任一机构托管的项目的网络容器:
Atlas Kubernetes Operator的不同实例
Atlas Kubernetes Operator以外的工具
使用
spec.externalProjectRef.id
。这些参数是互斥的。
spec.projectRef.namespace
类型:字符串
可选的
AtlasProject
中指定的spec.projectRef.name
自定义资源所在的命名空间。请勿为属于以下任一机构托管的项目的部署设立此参数:
Atlas Kubernetes Operator的不同实例
Atlas Kubernetes Operator以外的工具