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 Operator2 0之前使用的默认行为,请参阅新的默认值: Atlas Kubernetes Operator2 中的删除保护。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中实施私有端点的更多信息,请参阅管理私有端点。
示例
基本示例
以下示例显示了一个 自定义资源,该资源在 项目中定义了 AtlasPrivateEndpointAmazon Web Services私有端点。my-project
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 示例
以下示例显示了一个独立于AtlasPrivateEndpoint 的 CRD,它定义了基本示例中定义的相同私有端点。通过此自定义资源定义,您可以在某个项目中创建此私有端点,而该项目并非在您定义此资源的Atlas Kubernetes Operator实例中管理。 要启用独立操作,必须使用 externalProjectRef 而不是 projectRef,并且必须直接提供 connectionSecret,因为此资源无法从其父项目继承API凭证。
apiVersion: atlas.mongodb.com/v1 kind: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: atlasRef: projectID: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS region: US_EAST_1 awsConfiguration: - id: vpcpe-xyz
参数
本部分介绍可用的AtlasPrivateEndpoint自定义资源参数。
metadata.name类型:字符串
必需
AtlasProject自定义资源用于将此私有端点添加到项目中的名称。
metadata.namespace类型:字符串
Optional
要包含
atlasPrivateEndpoint自定义资源的default以外的命名空间。 如果定义自定义命名空间,则必须将其添加到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 。 您必须指定现有Atlas项目的项目ID 。对于属于以下任一机构托管的项目的私有端点,必须使用此参数:
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以外的工具
请勿设立此参数。