중요
Atlas Open Service 브로커는 더 이상 사용되지 않습니다. 대신MongoDB Atlas 연산자 를 사용합니다.
샤드 클러스터 는 대규모 데이터 세트에 대한 수평적 확장을 제공하고, 데이터 세트를 서버 그룹에 분산하여 처리량이 많은 작업을 활성화합니다.
샤딩에 대해 자세히 학습하려면 MongoDB 매뉴얼의 샤딩 소개 를 참조하세요.
Atlas가 관리할 수 있는 새로운 샤드 클러스터를 배포하려면 Atlas Open Service Broker 및 Kubernetes를 사용하세요. 배포 후 Atlas를 사용하여 샤드를 추가하고 클러스터에서 기타 유지 관리 작업을 수행할 수 있습니다.
전제 조건
객체 정의하여 Atlas 샤딩된 클러스터를 생성합니다. Kubernetes 객체 사용하여 샤딩된 클러스터 배포 하려면 먼저 Atlas Open Service 브로커를 설치해야 합니다.
고려 사항
Atlas API의 제한 사항
Atlas Open Service 브로커는 Atlas API 의 클러스터 생성 엔드포인트를 사용하여 샤딩된 클러스터를 배포 . 해당 API 의 모든 요구 사항 또는 제한 사항은 Atlas Open Service 브로커에도 적용 .
절차
샤딩된 클러스터 에 대한 ServiceInstance 리소스 정의를 생성합니다.
Atlas Open Service 브로커 인스턴스의 범위에 따라 다음 리소스 정의 예시 중 하나를 복사합니다.
Atlas Open Service 브로커 인스턴스를 다음과 같이 등록한 경우:
ClusterServiceBroker, Cluster-scoped Instance(클러스터 범위 인스턴스) 탭을 선택합니다.ServiceBroker네임스페이스 범위 인스턴스 탭을 선택합니다.
원하는 구성에 맞게 수정할 수 있는 다음 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 cluster 이름을 무작위로 생성합니다. |
| |
|
| ||
| Atlas cloud 서비스 제공자 에 해당하는 Kubernetes 클래스입니다. 다음 명령을 호출하여 사용 가능한 클래스를 확인합니다. 클래스 이름은 명령 출력의 |
| |
| 원하는 Atlas 인스턴스 크기에 해당하는 Kubernetes 서비스 계획입니다. 다음 명령을 호출하여 사용 가능한 요금제를 확인합니다. 계획 이름은 명령 출력의 |
| |
spec.parameters.cluster.numShards | 샤딩된 클러스터의 샤드 수입니다. |
| |
spec.parameters.cluster.providerSettings.regionName | 클러스터 생성되는 Atlas 리전 입니다. 중요cloud 제공자 리전 이름이 아닌 원하는 리전 의 Atlas 리전 이름을 사용해야 합니다. 선택한 리전 이 클러스터 크기를 지원하는지 확인합니다. 사용 가능한 리전 목록은 해당 cloud 서비스 제공자 의 Atlas 설명서를 참조하세요. |
|
키 | 설명 | 예시 | |
|---|---|---|---|
| Kubernetes 의 클러스터 이름입니다. Atlas 해당 Atlas cluster 이름을 무작위로 생성합니다. |
| |
|
| ||
| Atlas cloud 서비스 제공자 에 해당하는 Kubernetes 클래스입니다. 다음 명령을 호출하여 사용 가능한 클래스를 확인합니다. 클래스 이름은 명령 출력의 |
| |
| 원하는 Atlas 인스턴스 크기에 해당하는 Kubernetes 서비스 계획입니다. 다음 명령을 호출하여 사용 가능한 요금제를 확인합니다. 계획 이름은 명령 출력의 |
| |
spec.parameters.cluster.numShards | 샤딩된 클러스터의 샤드 수입니다. |
| |
spec.parameters.cluster.providerSettings.regionName | 클러스터 생성되는 Atlas 리전 입니다. 중요cloud 제공자 리전 이름이 아닌 원하는 리전 의 Atlas 리전 이름을 사용해야 합니다. 선택한 리전 이 클러스터 크기를 지원하는지 확인합니다. 사용 가능한 리전 목록은 해당 cloud 서비스 제공자 의 Atlas 설명서를 참조하세요. |
|
(선택 사항) 샤딩된 클러스터 배포서버 에 대한추가 설정을 구성합니다.
spec.parameters.cluster 키 아래에 추가 클러스터 설정을 지정할 수 있습니다. 이러한 설정은 클러스터 API생성 메서드의 요청 본문 매개변수에 해당합니다.
중요
다음 API 매개변수는 이전 단계의 필수 Atlas Open Service 브로커 설정으로 덮어쓰므로 지정해서는 안 됩니다.
providerSettings.instanceSizeNameproviderSettings.providerNamename
예시
이 예시 리소스 정의는 다음 구성을 가진 atlas 네임스페이스에 my-sharded-cluster 라는 샤딩된 클러스터 를 생성합니다.
클러스터 범위(
ClusterServiceBroker) Atlas Open Service 브로커가 관리합니다.cloud 서비스 제공자 로서의 Amazon Web Services
인스턴스 크기:
M303개의 샤드로 구성
EU(프랑크푸르트) 리전 에 위치
자동 확장 비활성화됨
Atlas Cloud 제공자 스냅샷 활성화
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 브로커가 관리합니다.cloud 서비스 제공자 로서의 Amazon Web Services
인스턴스 크기:
M303개의 샤드로 구성
EU(프랑크푸르트) 리전 에 위치
자동 확장 비활성화됨
Atlas Cloud 제공자 스냅샷 활성화
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
샤드 클러스터 배포의 상태를 추적합니다.
배포 상태를 보려면 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