Importante
Atlas Open Service Broker está obsoleto. Utilice el Operador Atlas de MongoDB en su lugar.
Los clústeres fragmentados proporcionan escalamiento horizontal para grandes conjuntos de datos y permiten operaciones de alto rendimiento al distribuir el conjunto de datos en un grupo de servidores.
Para obtener más información sobre la fragmentación, consulte Introducción a la fragmentación en el manual de MongoDB.
Para implementar un nuevo clúster fragmentado que Atlas pueda administrar, utilice Atlas Open Service Broker y Kubernetes. Tras la implementación, utilice Atlas para agregar fragmentos y realizar otras operaciones de mantenimiento en el clúster.
Requisitos previos
You create Atlas sharded clusters by defining an object. To deploy a sharded cluster using an Kubernetes object, you must first install the Atlas Open Service Broker.
Considerations
Límites de la API de Atlas
Atlas Open Service Broker uses the Create a Cluster endpoint of the Atlas API to deploy sharded clusters. Any requirements or limitations of that API also apply to the Atlas Open Service Broker.
Procedimiento
Create a ServiceInstance resource definition for your sharded cluster.
Copie uno de los siguientes ejemplos de definición de recursos según el alcance de su instancia de Atlas Open Service Broker.
Si registró la instancia de Atlas Open Service Broker como:
A
ClusterServiceBroker, select the Cluster-scoped Instance tab.A,
ServiceBrokerseleccione la pestaña Instancia con ámbito de espacio de nombres.
Copy the following YAML file, which you can modify to meet your desired configuration:
1 apiVersion: servicecatalog.k8s.io/v1beta1 2 kind: ServiceInstance 3 metadata: 4 name: <CLUSTER_NAME> 5 namespace: <NAMESPACE> 6 spec: 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> Copy the following YAML file, which you can modify to meet your desired configuration:
1 apiVersion: servicecatalog.k8s.io/v1beta1 2 kind: ServiceInstance 3 metadata: 4 name: <CLUSTER_NAME> 5 namespace: <NAMESPACE> 6 spec: 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> Abra su editor de texto preferido y pegue la definición del recurso en un nuevo archivo de texto.
Configure los ajustes necesarios.
Para implementar un clúster fragmentado, debe especificar las siguientes configuraciones:
Clave | Descripción | Ejemplo | |
|---|---|---|---|
| Nombre del clúster en Kubernetes. Atlas genera aleatoriamente el nombre del clúster correspondiente. |
| |
|
| ||
| Clase de Kubernetes que corresponde a su proveedor de servicios en la nube Atlas. Vea las clases disponibles invocando el siguiente comando: Los nombres de clase se enumeran en la columna |
| |
| Plan de servicio de Kubernetes que corresponde al tamaño de instancia de Atlas deseado. Vea los planes disponibles invocando el siguiente comando: Los nombres de los planes se enumeran en la columna |
| |
spec.parameters.cluster.numShards | Número de fragmentos en el clúster fragmentado. |
| |
spec.parameters.cluster.providerSettings.regionName | Región del Atlas donde se crea el clúster. ImportanteAsegúrese de usar el nombre de la región de Atlas para la región deseada, no el nombre de la región del proveedor de la nube. Asegúrese de que la región seleccionada sea compatible con el tamaño del clúster. Para obtener una lista de las regiones disponibles, consulte la documentación de Atlas para su proveedor de servicios en la nube: |
|
Clave | Descripción | Ejemplo | |
|---|---|---|---|
| Nombre del clúster en Kubernetes. Atlas genera aleatoriamente el nombre del clúster correspondiente. |
| |
|
| ||
| Clase de Kubernetes que corresponde a su proveedor de servicios en la nube Atlas. Vea las clases disponibles invocando el siguiente comando: Los nombres de clase se enumeran en la columna |
| |
| Plan de servicio de Kubernetes que corresponde al tamaño de instancia de Atlas deseado. Vea los planes disponibles invocando el siguiente comando: Los nombres de los planes se enumeran en la columna |
| |
spec.parameters.cluster.numShards | Número de fragmentos en el clúster fragmentado. |
| |
spec.parameters.cluster.providerSettings.regionName | Región del Atlas donde se crea el clúster. ImportanteAsegúrese de usar el nombre de la región de Atlas para la región deseada, no el nombre de la región del proveedor de la nube. Asegúrese de que la región seleccionada sea compatible con el tamaño del clúster. Para obtener una lista de las regiones disponibles, consulte la documentación de Atlas para su proveedor de servicios en la nube: |
|
(Optional) Configure any additional settings for a sharded cluster deployment.
You can specify additional cluster settings under the spec.parameters.cluster key. These settings correspond to the request body parameters of the Create a Cluster API method.
Importante
Los siguientes parámetros de API se sobrescriben con las configuraciones requeridas de Atlas Open Service Broker del paso anterior y no se deben especificar:
providerSettings.instanceSizeNameproviderSettings.providerNamename
Ejemplo
Esta definición de recurso de ejemplo crea un clúster fragmentado llamado my-sharded-cluster en el atlas espacio de nombres que tiene la siguiente configuración:
Administrado por un Atlas Open Service Broker con ámbito de clúster (
ClusterServiceBroker)AWS como proveedor de servicios en la nube
Un tamaño de instancia de
M30Compuesto por tres particiones
Ubicado en la región de la UE (Frankfurt)
Escalado automático deshabilitado
Instantáneas de proveedor de nube Atlas habilitadas
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
Ejemplo
Esta definición de recurso de ejemplo crea un clúster fragmentado llamado my-sharded-cluster en el atlas espacio de nombres que tiene la siguiente configuración:
Administrado por un Atlas Open Service Broker con ámbito de espacio de nombres (
ServiceBroker)AWS como proveedor de servicios en la nube
Un tamaño de instancia de
M30Compuesto por tres particiones
Ubicado en la región de la UE (Frankfurt)
Escalado automático deshabilitado
Instantáneas de proveedor de nube Atlas habilitadas
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
Deploy the sharded cluster.
Invoque el siguiente comando de Kubernetes para crear su clúster fragmentado:
kubectl apply -f sharded-cluster.yaml
Realice un seguimiento del estado de la implementación de su clúster fragmentado.
Para ver el estado de su implementación, pase metadata.name de sharded-cluster.yaml al siguiente comando:
svcat describe instance <METADATA.NAME> -n <NAMESPACE>
A medida que se implementa el clúster fragmentado, el comando devuelve el siguiente estado:
Provisioning - The instance is being provisioned asynchronously
Una vez que el clúster fragmentado se implementa correctamente, el comando devuelve el siguiente estado:
Ready - The instance was provisioned successfully