Docs 菜单
Docs 主页
/
Atlas Open Service Broker
/

将云提供商和实例大小列入白名单

重要

Atlas Open Service Broker 已弃用。请改用 MongoDB Atlas Operator

您可以为使用Atlas Open Service Broker 部署的Atlas集群指定允许的云服务提供商列表和实例大小。此白名单可将Atlas集群限制为特定的云提供商和规模,从而帮助控制成本或确保合规。当您应用白名单并部署集群时,只有白名单中列出的提供程序和实例大小会显示在服务目录市场中。

您必须安装 Atlas Open Service Broker

白名单仅适用于通过 Atlas Open Service Broker 创建的 Atlas 集群。 通过用户界面在同一项目中创建的 Atlas 集群不受白名单限制。

您可以随时创建并应用白名单。 如果您的项目中已有 Atlas 集群,请确保其云服务提供商和实例大小包含在白名单中,以防止 Atlas Open Service Broker 可能出现问题。

1

白名单是一个JSON对象,其中包含每个云服务提供商的密钥。每个云服务提供商键都将相应实例大小的大量作为其值。要查看可用实例大小的列表,请参阅Atlas 创建集群 API 中的 providerSettings.instanceSizeName 参数。

  1. 打开首选文本编辑器,使用以下键值对创建JSON文件:

    类型
    说明

    TENANT

    字符串数组

    共享 Atlas 租户上允许的实例大小数组。 支持的值为:

    • M2

    • M5

    注意

    您在部署集群时为spec.regionName设置指定的值决定了将集群部署到哪个云提供商。

    AWS

    字符串数组

    允许的 Amazon Web Services 实例大小数组。

    GCP

    字符串数组

    允许的 Google Cloud Platform 实例大小数组。

    AZURE

    字符串数组

    允许的 Microsoft Azure 实例大小的数组。

    例子

    此示例 JSON 文件将以下云服务提供商和实例大小列入白名单:

    • 共享 Atlas 租户: M2M5

    • Google Cloud Platform: M10M20M200

    • Amazon Web Services: M10M20M100M140

    • Microsoft Azure: M10M20M200

    {
    "TENANT": [
    "M2",
    "M5"
    ],
    "GCP": [
    "M10",
    "M20",
    "M200"
    ],
    "AWS": [
    "M10",
    "M20",
    "M100",
    "M140"
    ],
    "AZURE": [
    "M10",
    "M20",
    "M200"
    ]
    }
  2. 将此文件另存为providers-whitelist.json

2

您可以使用configMap资源将白名单数据添加到部署中。

调用以下命令从providers-whitelist.json文件创建名为providers-whitelistconfigMap资源:

kubectl create configmap providers-whitelist --from-file=providers-whitelist.json -n <NAMESPACE>
3
  1. 在首选文本编辑器中打开Deployment资源定义YAML文件。

    提示

    如果您按照安装教程进行操作,则会发现此资源在deployment-and-service.yaml中定义。

  2. 复制突出显示的参数,并将其粘贴到kind: Deployment资源定义中。

    这些参数指示Kubernetes将ConfigMap作为安装到此部署的指定路径。

    spec:
    template:
    spec:
    containers:
    - name: atlas-service-broker
    image: quay.io/mongodb/mongodb-atlas-service-broker:latest
    ports:
    - containerPort: 4000
    env:
    - name: BROKER_HOST
    value: 0.0.0.0
    - name: PROVIDERS_WHITELIST_FILE
    value: <PATH_TO_WHITELIST_FILE>
    volumeMounts:
    - name: <VOLUME_NAME>
    mountPath: <PATH_TO_MOUNT_VOLUME>
    volumes:
    - name: <VOLUME_NAME>
    configMap:
    name: <CONFIGMAP_NAME>
  3. 配置所需的设置。

    说明
    例子
    spec.template.spec
    .containers.env.value

    白名单 JSON 文件的绝对路径。

    /etc/config/providers-whitelist.json

    spec.template.spec
    .containers.volumeMounts.name
    Name of the volume that contains the whitelist data.
    This value must match
    spec.template.spec.volumes.name.

    config-volume

    spec.template.spec
    .containers.mountPath.value

    在此部署中安装卷的绝对路径。

    /etc/config

    spec.template.spec
    .volumes.name
    Name of the volume that contains the whitelist data.
    This value must match
    spec.template.spec
    .containers.volumeMounts.name.

    config-volume

    spec.template.spec
    .volumes.configMap.name

    与白名单对应的configMap名称。

    providers-whitelist

  4. 保存Deployment资源定义。

4

调用以下 kubectl 命令:

kubectl apply -f <DEPLOYMENT_RESOURCE_DEFINITION>.yaml -n <NAMESPACE>

在此页面上