重要
旧版子资源自相应的 CRD发布以来已被弃用。如果您的配置当前依赖于此资源定义的子资源形式,迁移到 CRD。
AtlasPrivateEndpoint 自定义资源为Atlas项目配置私有端点。这样,您就可以将云提供商连接到Atlas ,而无需通过公共网络发送信息。私有端点是从虚拟网络到Atlas的单向连接。
重要
自定义资源不再默认删除对象
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资源:执行以下操作之一:
创建新的私有端点服务。
更新现有的私有端点服务。
要学习;了解有关在Atlas Kubernetes Operator中实施私有端点的更多信息,请参阅管理私有端点。
示例
基本示例
以下示例显示了一个 AtlasPrivateEndpoint 自定义资源,该资源在 my-project 项目内定义了 Amazon Web Services 私有端点。
apiVersion: atlas.mongodb.com/v1 kind: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS region: us-east-1 awsConfiguration: - id: vpcpe-xyz
独立 CRD 示例
The following example shows an AtlasPrivateEndpoint independent CRD that defines the same private endpoint defined in the Basic Example. This custom resource definition allows you to create this private endpoint in a project you don't manage in the same instance of Atlas Kubernetes Operator with which you define this resource. To enable independent operation, you must use an externalProjectRef instead of a projectRef, and you must supply a connectionSecret directly since this resource can't inherit API credentials from its parent project.
apiVersion: atlas.mongodb.com/v1 kind: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: externalProjectRef: projectID: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS region: us-east-1 awsConfiguration: - id: vpcpe-xyz
参数
本部分介绍可用的AtlasPrivateEndpoint自定义资源参数。
metadata.name类型:字符串
必需
Name that the
AtlasPrivateEndpointCustom Resource uses to add this private endpoint to a project.
metadata.namespace类型:字符串
Optional
要包含
AtlasPrivateEndpoint自定义资源的命名空间。如果未指定, Atlas Kubernetes Operator将使用kubectl设立的当前命名空间。如果定义自定义命名空间,则必须将其添加到
AtlasProject字段中的spec.privateEndpoint.privateEndpointRef.namespace自定义资源。
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 of the project to which the private endpoint belongs. You must specify the project ID of an existing Atlas Project. This parameter is required for private endpoints that belong to projects managed by either:
Atlas Kubernetes Operator的不同实例
Atlas Kubernetes Operator以外的工具
对于属于同一Atlas Kubernetes Operator实例托管的项目的部署,如果不使用
spec.externalProjectRef.id,请使用spec.projectRef.name。一个私有端点只能属于一个项目。 要为多个项目定义相同的私有端点,请为每个项目创建自定义资源定义。
spec.gcpConfiguration.endpoints.[n].ipAddress类型:字符串
可选的
给定Google Cloud Platform私有端点解析的IP解决。 此参数为强制参数,且仅限于Google Cloud Platform私有端点。
spec.gcpConfiguration.endpoints.[n].name类型:字符串
可选的
唯一标识给定Google Cloud Platform私有端点的名称。 此参数为强制参数,且仅限于Google Cloud Platform私有端点。
spec.gcpConfiguration.groupName类型:字符串
可选的
唯一标识一设立Google Cloud Platform私有端点的名称。 此参数为强制参数,且仅限于Google Cloud Platform私有端点。
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以外的工具
请勿设立此参数。