重要
Atlas Open Service Broker 已弃用。请改用 MongoDB Atlas Operator。
您可以为使用Atlas Open Service Broker 部署的Atlas集群指定允许的云服务提供商列表和实例大小。此白名单可将Atlas集群限制为特定的云提供商和规模,从而帮助控制成本或确保合规。当您应用白名单并部署集群时,只有白名单中列出的提供程序和实例大小会显示在服务目录市场中。
先决条件
您必须安装 Atlas Open Service Broker 。
Considerations
白名单范围
白名单仅适用于通过 Atlas Open Service Broker 创建的 Atlas 集群。 通过用户界面在同一项目中创建的 Atlas 集群不受白名单限制。
现有集群
您可以随时创建并应用白名单。 如果您的项目中已有 Atlas 集群,请确保其云服务提供商和实例大小包含在白名单中,以防止 Atlas Open Service Broker 可能出现问题。
步骤
创建白名单 JSON文件。
白名单是一个JSON对象,其中包含每个云服务提供商的密钥。每个云服务提供商键都将相应实例大小的大量作为其值。要查看可用实例大小的列表,请参阅Atlas 创建集群 API 中的 providerSettings.instanceSizeName 参数。
打开首选文本编辑器,使用以下键值对创建JSON文件:
键类型说明TENANT字符串数组
共享 Atlas 租户上允许的实例大小数组。 支持的值为:
M2M5
注意
您在部署集群时为
spec.regionName设置指定的值决定了将集群部署到哪个云提供商。AWS字符串数组
允许的 Amazon Web Services 实例大小数组。
GCP字符串数组
允许的 Google Cloud Platform 实例大小数组。
AZURE字符串数组
允许的 Microsoft Azure 实例大小的数组。
例子
此示例 JSON 文件将以下云服务提供商和实例大小列入白名单:
共享 Atlas 租户:
M2和M5Google Cloud Platform:
M10、M20和M200Amazon Web Services:
M10、M20、M100和M140Microsoft Azure:
M10、M20和M200
{ "TENANT": [ "M2", "M5" ], "GCP": [ "M10", "M20", "M200" ], "AWS": [ "M10", "M20", "M100", "M140" ], "AZURE": [ "M10", "M20", "M200" ] } 将此文件另存为
providers-whitelist.json。
从JSON文件创建ConfigMap对象。
您可以使用configMap资源将白名单数据添加到部署中。
调用以下命令从providers-whitelist.json文件创建名为providers-whitelist的configMap资源:
kubectl create configmap providers-whitelist --from-file=providers-whitelist.json -n <NAMESPACE>
编辑 Deployment资源定义。
在首选文本编辑器中打开
Deployment资源定义YAML文件。提示
如果您按照安装教程进行操作,则会发现此资源在
deployment-and-service.yaml中定义。复制突出显示的参数,并将其粘贴到
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> 配置所需的设置。
键说明例子spec.template.spec.containers.env.value白名单 JSON 文件的绝对路径。
/etc/config/providers-whitelist.jsonspec.template.spec.containers.volumeMounts.nameName of the volume that contains the whitelist data.This value must matchspec.template.spec.volumes.name.config-volumespec.template.spec.containers.mountPath.value在此部署中安装卷的绝对路径。
/etc/configspec.template.spec.volumes.nameName of the volume that contains the whitelist data.This value must matchspec.template.spec.containers.volumeMounts.name.config-volumespec.template.spec.volumes.configMap.name与白名单对应的
configMap名称。providers-whitelist保存
Deployment资源定义。
重新部署 Atlas Open Service Broker。
调用以下 kubectl 命令:
kubectl apply -f <DEPLOYMENT_RESOURCE_DEFINITION>.yaml -n <NAMESPACE>