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

部署分片集群

重要

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

分片集群为大型数据集提供水平扩展,并通过将数据集分布在一群组服务器上来启用高吞吐量操作。

要学习;了解有关分片的更多信息,请参阅MongoDB手册中的分片简介

要部署 Atlas 可以管理的新分片集群,请使用 Atlas Open Service Broker 和 Kubernetes。 部署后,使用 Atlas 添加分片并对集群执行其他维护操作。

您可以通过定义对象来创建Atlas分片的集群。要使用Kubernetes对象部署分片集群,必须先安装Atlas Open Service Broker。

Atlas Open Service Broker 使用 Atlas API 的 创建集群 端点来部署分片的集群。该API的任何要求或限制也应用于Atlas Open Service Broker。

1
  1. 根据 Atlas Open Service Broker 实例的范围,复制以下资源定义示例之一。

    如果您将 Atlas Open Service Broker 实例注册为:

    • A ClusterServiceBroker ,选择Cluster-scoped Instance(集群范围的实例)标签页。

    • A ServiceBroker ,选择Namespace-scoped Instance(命名空间范围的实例)标签页。


    复制以下YAML文件,您可以修改该文件以满足所需的配置:

    1apiVersion: servicecatalog.k8s.io/v1beta1
    2kind: ServiceInstance
    3metadata:
    4 name: <CLUSTER_NAME>
    5 namespace: <NAMESPACE>
    6spec:
    7 clusterServiceClassExternalName: <CLOUD_SERVICE_PROVIDER_CLASS>
    8 clusterServicePlanExternalName: <INSTANCE_SIZE_PLAN>
    9 parameters:
    10 cluster:
    11 numShards: <NUMBER_OF_SHARDS>
    12 providerSettings:
    13 regionName: <ATLAS_REGION>

    复制以下YAML文件,您可以修改该文件以满足所需的配置:

    1apiVersion: servicecatalog.k8s.io/v1beta1
    2kind: ServiceInstance
    3metadata:
    4 name: <CLUSTER_NAME>
    5 namespace: <NAMESPACE>
    6spec:
    7 serviceClassExternalName: <CLOUD_SERVICE_PROVIDER_CLASS>
    8 servicePlanExternalName: <INSTANCE_SIZE_PLAN>
    9 parameters:
    10 cluster:
    11 numShards: <NUMBER_OF_SHARDS>
    12 providerSettings:
    13 regionName: <ATLAS_REGION>
  2. 打开首选文本编辑器,将资源定义粘贴到新的文件中。

2

要部署分片集群,必须指定以下设置:

说明
例子

metadata.name

Kubernetes中集群的名称。Atlas随机生成相应的Atlas 集群名称。

my-atlas-cluster

metadata.namespace

创建此集群的Kubernetes命名空间。

atlas

spec.clusterServiceClassExternalName

对应于您的Atlas云服务提供商的Kubernetes类。

通过调用以下命令查看可用类:

svcat marketplace -n <NAMESPACE>

类名称列在命令输出的 CLASS 列中。

mongodb-atlas-aws

spec.clusterServicePlanExternalName

与所需Atlas实例大小相对应的Kubernetes服务计划。

通过调用以下命令查看可用计划:

svcat marketplace -n <NAMESPACE>

计划名称列在命令输出的 PLANS 列中。

M30

spec.parameters.cluster
.numShards

分片集群中的分片数量。

3

spec.parameters.cluster
.providerSettings.regionName

创建集群的Atlas地区。

重要

确保对所需地区使用Atlas地区名称,而不是云提供商地区名称。确保您选择的地区支持您的集群大小。

有关可用区域的列表,请参阅您的云服务提供商的Atlas文档:

EU_CENTRAL_1

说明
例子

metadata.name

Kubernetes中集群的名称。Atlas随机生成相应的Atlas 集群名称。

my-atlas-cluster

metadata.namespace

创建此集群的Kubernetes命名空间。

atlas

spec.serviceClassExternalName

对应于您的Atlas云服务提供商的Kubernetes类。

通过调用以下命令查看可用类:

svcat marketplace -n <NAMESPACE>

类名称列在命令输出的 CLASS 列中。

mongodb-atlas-aws

spec.servicePlanExternalName

与所需Atlas实例大小相对应的Kubernetes服务计划。

通过调用以下命令查看可用计划:

svcat marketplace -n <NAMESPACE>

计划名称列在命令输出的 PLANS 列中。

M30

spec.parameters.cluster
.numShards

分片集群中的分片数量。

3

spec.parameters.cluster
.providerSettings.regionName

创建集群的Atlas地区。

重要

确保对所需地区使用Atlas地区名称,而不是云提供商地区名称。确保您选择的地区支持您的集群大小。

有关可用区域的列表,请参阅您的云服务提供商的Atlas文档:

EU_CENTRAL_1

3

您可以在 spec.parameters.cluster 键下指定其他集群设置。这些设置对应于创建集群API方法的请求正文参数。

重要

以下API参数将被上一步中所需的 Atlas Open Service Broker 设置覆盖,因此不应指定这些参数:

  • providerSettings.instanceSizeName

  • providerSettings.providerName

  • name

例子

此示例资源定义在 atlas 命名空间中创建一个名为 my-sharded-cluster分片集群,该集群具有以下配置:

  • 由集群范围 (ClusterServiceBroker) Atlas Open Service Broker 管理

  • Amazon Web Services作为云服务提供商

  • 实例大小为 M30

  • 由三个分片组成

  • 位于欧盟(法兰克福)地区

  • 已禁用自动伸缩

  • 已启用Atlas Cloud Provider Atlas 备份快照

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: my-sharded-cluster
namespace: atlas
spec:
clusterServiceClassExternalName: mongodb-atlas-aws
clusterServicePlanExternalName: M30
parameters:
cluster:
numShards: 3
providerSettings:
regionName: EU_CENTRAL_1
autoscaling:
diskGBEnabled: false
providerBackupEnabled: true

例子

此示例资源定义在 atlas 命名空间中创建一个名为 my-sharded-cluster分片集群,该集群具有以下配置:

  • 由命名空间范围 (ServiceBroker) Atlas Open Service Broker 管理

  • Amazon Web Services作为云服务提供商

  • 实例大小为 M30

  • 由三个分片组成

  • 位于欧盟(法兰克福)地区

  • 已禁用自动伸缩

  • 已启用Atlas Cloud Provider Atlas 备份快照

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: my-sharded-cluster
namespace: atlas
spec:
serviceClassExternalName: mongodb-atlas-aws
servicePlanExternalName: M30
parameters:
cluster:
numShards: 3
providerSettings:
regionName: EU_CENTRAL_1
autoscaling:
diskGBEnabled: false
providerBackupEnabled: true
4
5

调用以下Kubernetes命令来创建分片集群:

kubectl apply -f sharded-cluster.yaml
6

要查看部署状态,请将metadata.namesharded-cluster.yaml传递到以下命令:

svcat describe instance <METADATA.NAME> -n <NAMESPACE>

在部署分片集群时,该命令会返回以下状态:

Provisioning - The instance is being provisioned asynchronously

成功部署分片集群后,该命令将返回以下状态:

Ready - The instance was provisioned successfully

后退

部署副本集

在此页面上