Important
Atlas Open Service Broker is deprecated. Use the MongoDB Atlas Operator instead.
A replica set is a group of MongoDB deployments that maintain the same data set. Replica sets provide redundancy and high availability and are the basis for all production deployments.
To learn more about replica sets, see the Replication Introduction in the MongoDB manual.
You can use the Atlas Open Service Broker to deploy a new replica set managed by Atlas. After deployment, use Atlas to manage monitoring, backups, and project configuration such as VPC peering or billing.
Prerequisites
You create Atlas replica sets by defining an object. To deploy a replica set using an Kubernetes object, you must first install the Atlas Open Service Broker.
Considerations
Atlas Public API
Atlas Open Service Broker uses the Create a Cluster endpoint of the Atlas Public API to deploy replica sets. Any requirements or limitations of the API also apply to the Atlas Open Service Broker.
Procedure
Create a resource definition for your replica set.
Copy one of the following resource definition examples based on the scope of your service broker instance.
If you registered the Atlas Open Service Broker instance as a cluster-scoped
ClusterServiceBroker, select Cluster-scoped Instance. If you registered the Atlas Open Service Broker instance as a namespace-scopedServiceBroker, select Namespace-scoped Instance.Copy the following YAML file, which you can modify to meet your desired configuration:
apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceInstance metadata: name: <CLUSTER_NAME> namespace: <NAMESPACE> spec: clusterServiceClassExternalName: <CLOUD_SERVICE_PROVIDER_CLASS> clusterServicePlanExternalName: <INSTANCE_SIZE_PLAN> parameters: cluster: providerSettings: regionName: <ATLAS_REGION> Copy the following YAML file, which you can modify to meet your desired configuration:
apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceInstance metadata: name: <CLUSTER_NAME> namespace: <NAMESPACE> spec: serviceClassExternalName: <CLOUD_SERVICE_PROVIDER_CLASS> servicePlanExternalName: <INSTANCE_SIZE_PLAN> parameters: cluster: providerSettings: regionName: <ATLAS_REGION> Open your preferred text editor and paste the resource definition into a new text file.
Configure the required settings.
The highlighted settings are required to deploy a replica set:
Key | Description | Example | |
|---|---|---|---|
| The name of the cluster in Kubernetes. Atlas randomly generates a corresponding replica set name. |
| |
| The Kubernetes namespace where this cluster is created. |
| |
| The Kubernetes class which corresponds to your Atlas cloud service provider. View the available classes by invoking the following command: The class names are listed in the NoteYou must use the |
| |
| The Kubernetes service plan which corresponds to the desired Atlas instance size. View the available plans by invoking the following command: The plan names are listed in the |
| |
| The Atlas region where the replica set is created. ImportantMake sure you use the Atlas region name for the desired
region, not the cloud provider region name. If you
deploy For a list of available regions, see the Atlas documentation for your cloud service provider: |
|
Key | Description | Example | |
|---|---|---|---|
| The name of the cluster in Kubernetes. Atlas randomly generates a corresponding replica set name. |
| |
| The Kubernetes namespace where this cluster is created. |
| |
| The Kubernetes class which corresponds to your Atlas cloud service provider. View the available classes by invoking the following command: The class names are listed in the NoteYou must use the |
| |
| The Kubernetes service plan which corresponds to the desired Atlas instance size. View the available plans by invoking the following command: The plan names are listed in the |
| |
| The Atlas region where the replica set is created. ImportantMake sure you use the Atlas region name for the desired
region, not the cloud provider region name. If you
deploy For a list of available regions, see the Atlas documentation for your cloud service provider: |
|
(Optional) Configure any additional settings for a replica set 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
Public API method.
Important
The following API parameters are overwritten by the required Atlas Open Service Broker settings from the previous step and should not be specified:
providerSettings.instanceSizeNameproviderSettings.providerNamename
Example
This example resource definition creates a cluster called
my-atlas-cluster in the atlas namespace that has the
following configuration:
Managed by a cluster-scoped (
ClusterServiceBroker) Atlas Open Service BrokerAWS as a cloud service provider
An instance size of
M10Located in the EU (Frankfurt) region
Auto-scaling disabled
Atlas Cloud Provider Snapshots enabled
apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceInstance metadata: name: my-atlas-cluster namespace: atlas spec: clusterServiceClassExternalName: mongodb-atlas-aws clusterServicePlanExternalName: M10 parameters: cluster: providerSettings: regionName: EU_CENTRAL_1 autoscaling: diskGBEnabled: false providerBackupEnabled: true
Example
This example resource definition creates a cluster called
my-atlas-cluster in the atlas namespace that has the
following configuration:
Managed by a namespace-scoped (
ServiceBroker) Atlas Open Service BrokerAWS as a cloud service provider
An instance size of
M10Located in the EU (Frankfurt) region
Auto-scaling disabled
Atlas Cloud Provider Snapshots enabled
apiVersion: servicecatalog.k8s.io/v1beta1 kind: ServiceInstance metadata: name: my-atlas-cluster namespace: atlas spec: serviceClassExternalName: mongodb-atlas-aws servicePlanExternalName: M10 parameters: cluster: providerSettings: regionName: EU_CENTRAL_1 autoscaling: diskGBEnabled: false providerBackupEnabled: true
Deploy the replica set.
Invoke the following Kubernetes command to create your replica set:
kubectl apply -f replica-set.yaml
Track the status of your replica set deployment.
To view the status of your deployment, pass the metadata.name
from replica-set.yaml into the following command:
svcat describe instance <METADATA.NAME> -n <NAMESPACE>
As the replica set is being deployed, the command returns the following status:
Provisioning - The instance is being provisioned asynchronously
Once the replica set deploys successfully, the command returns the following status:
Ready - The instance was provisioned successfully