重要
Atlas Open Service Blog は非推奨です。代わりに、MongoDB Atlas演算子 を使用してください。
シャーディングされたクラスターは、大規模なデータセットの水平スケーリングを提供し、データセットをサーバーのグループ全体に分散することで高スループット操作を可能にします。
シャーディングの詳細については、 MongoDBマニュアルの シャーディングの概要 を参照してください。
Atlas が管理できる新しいシャーディングされたクラスターを配置するには、Atlas Open Service Blog と Kubernetes を使用します。 配置後、Atlas を使用してシャードを追加し、クラスターでその他のメンテナンス操作を実行します。
前提条件
Atlas のシャーディングされたクラスターは、オブジェクトを定義して作成します。.Kubernetesオブジェクトを使用してシャーディングされたクラスターを配置するには、まず Atlas Open Service ブロックをインストールする 必要があります。
Considerations
Atlas API の制限
Atlas Open Service ブロックは、Atlas APIの クラスターの作成 エンドポイントを使用して、シャーディングされたクラスターを配置します。そのAPIの要件または制限は、Atlas Open Service ブロックにも適用されます。
手順
シャーディングされたクラスターの ServiceInstanceリソース定義を作成します。
Atlas Open Service Blocker インスタンスのスコープに基づいて、次のリソース定義の例の 1 つをコピーします。
Atlas Open Service Blog インスタンスを次のように登録した場合、
次の YAML ファイルをコピーします。これは、必要な構成に合わせて変更できます。
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> 次の YAML ファイルをコピーします。これは、必要な構成に合わせて変更できます。
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> テキスト エディターを開き、リソース定義を新しいテキスト ファイルに貼り付けます。
必要な設定を構成します。
シャーディングされたクラスターを配置するには、次の設定を指定する必要があります。
キー | 説明 | 例 | |
|---|---|---|---|
| Kubernetes内のクラスターの名前。Atlas は、対応する Atlas クラスター名をランダムに生成します。 |
| |
|
| ||
| Atlasクラウドサービス プロバイダーに対応するKubernetesクラス。 次のコマンドを呼び出して、利用可能なクラスを表示します。 クラス名は、コマンド出力の |
| |
| 必要な Atlasインスタンスサイズに対応するKubernetesサービス プラン。 次のコマンドを呼び出して、利用可能なプランを表示します。 プラン名は、コマンド出力の |
| |
spec.parameters.cluster.numShards | シャーディングされたクラスター内の シャード の数。 |
| |
spec.parameters.cluster.providerSettings.regionName | クラスターが作成される Atlas リージョン。 重要目的のリージョンに、クラウドプロバイダーのリージョン名ではなく、Atlas リージョン名を使用していることを確認してください。選択したリージョンがクラスター サイズをサポートしていることを確認します。 利用可能なリージョンのリストについては、クラウドサービス プロバイダーの Atlas ドキュメントを参照してください。 |
|
キー | 説明 | 例 | |
|---|---|---|---|
| Kubernetes内のクラスターの名前。Atlas は、対応する Atlas クラスター名をランダムに生成します。 |
| |
|
| ||
| Atlasクラウドサービス プロバイダーに対応するKubernetesクラス。 次のコマンドを呼び出して、利用可能なクラスを表示します。 クラス名は、コマンド出力の |
| |
| 必要な Atlasインスタンスサイズに対応するKubernetesサービス プラン。 次のコマンドを呼び出して、利用可能なプランを表示します。 プラン名は、コマンド出力の |
| |
spec.parameters.cluster.numShards | シャーディングされたクラスター内の シャード の数。 |
| |
spec.parameters.cluster.providerSettings.regionName | クラスターが作成される Atlas リージョン。 重要目的のリージョンに、クラウドプロバイダーのリージョン名ではなく、Atlas リージョン名を使用していることを確認してください。選択したリージョンがクラスター サイズをサポートしていることを確認します。 利用可能なリージョンのリストについては、クラウドサービス プロバイダーの Atlas ドキュメントを参照してください。 |
|
(任意)シャーディングされたクラスター配置の追加設定を構成します。
spec.parameters.cluster キーの下で追加のクラスター設定を指定できます。これらの設定は、 クラスターAPIメソッドのリクエスト本文パラメーターに対応します。
重要
次のAPIパラメーターは、前のステップの必須 Atlas Open Service Blocker 設定によって上書きされるため、指定しないでください。
providerSettings.instanceSizeNameproviderSettings.providerNamename
例
このリソース定義の例では、 my-sharded-clusteratlas名前空間に次の構成を持つ というシャーディングされたクラスターを作成します。
クラスタースコープの(
ClusterServiceBroker)Atlas Open Service Blog によって管理クラウドサービス プロバイダーとしてのAmazon Web Services
のインスタンスサイズ
M303 つのシャードで構成
EU(フランクフルト)リージョン内にあります
オートスケーリングが無効
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
例
このリソース定義の例では、 my-sharded-clusteratlas名前空間に次の構成を持つ というシャーディングされたクラスターを作成します。
名前空間スコープの(
ServiceBroker)Atlas Open Service Blog によって管理クラウドサービス プロバイダーとしてのAmazon Web Services
のインスタンスサイズ
M303 つのシャードで構成
EU(フランクフルト)リージョン内にあります
オートスケーリングが無効
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
シャーディングされたクラスターを配置します。
次のKubernetesコマンドを呼び出して、シャーディングされたクラスターを作成します。
kubectl apply -f sharded-cluster.yaml
シャーディングされたクラスターの配置のステータスを追跡します。
配置のステータスを表示するには、metadata.name からのsharded-cluster.yaml を次のコマンドに渡します。
svcat describe instance <METADATA.NAME> -n <NAMESPACE>
シャーディングされたクラスターが配置されているときに、 コマンドは次のステータスを返します。
Provisioning - The instance is being provisioned asynchronously
シャーディングされたクラスターが正常に配置されると、 コマンドは次のステータスを返します。
Ready - The instance was provisioned successfully