Docs Home → Atlas Open Service 브로커
Atlas Open Service 브로커 설치 및 구성
이 페이지의 내용
- 전제 조건
- Atlas 사전 요구 사항
- Kubernetes 전제 조건
- 고려 사항
- Kubernetes 호환성
- Atlas Open Service 브로커 범위
- 다중 Atlas Open Service 브로커 인스턴스
- Atlas Open Service 브로커 설치
- 네임스페이스 생성 Kubernetes 배포의 경우.
Deployment및Service리소스 정의를 만듭니다.- Atlas Open Service 브로커를 설치합니다.
- Kubernetes 시크릿을 만듭니다.
- Service 브로커 리소스 정의를 생성합니다.
- 서비스 카탈로그 에 Atlas Open Service 브로커 등록
- Atlas CLI를 사용하여 Atlas Open Service 브로커의 상태를 확인하세요.
- 다음 단계
중요
Atlas Open Service 브로커는 더 이상 사용되지 않습니다. MongoDB Atlas 연산자 사용 사용할 수 있습니다.
참고
이 튜토리얼은 Kubernetes에 대한 약간의 지식이 있다고 가정하지만 가능한 경우 관련 Kubernetes 문서에 대한 링크를 제공합니다. Kubernetes에 대해 잘 모르는 경우 먼저 Kubernetes 설명서를 검토하세요.
전제 조건
Atlas 사전 요구 사항
Atlas Open Service 브로커를 설치하려면 다음을 수행해야 합니다.
Atlas 청구를 위한 결제 수단 을 설정합니다.
cluster를 배포할 프로젝트 를 만듭니다.
이 새 프로그래매틱 API 키에 프로젝트 소유자 역할을 부여합니다.
Atlas Open Service 브로커를 제공하는 모든 호스트의 IP 또는 CIDR 블록을 API 화이트리스트에 추가합니다.
Kubernetes 전제 조건
사용할 수 있는 Kubernetes 솔루션이 있어야 합니다.
Kubernetes 솔루션이 필요한 경우 올바른 솔루션 선택에 대한 Kubernetes 설명서를 참조하세요.
Kubernetes 서비스 카탈로그 설치 .
Kubernetes Atlas CLI를 설치합니다.
고려 사항
Kubernetes 호환성
Atlas Open Service 브로커는 다음과 호환됩니다:
Kubernetes v1.13 이상
Kubernetes 서비스 카탈로그 v0.2.1 이상
Atlas Open Service 브로커 범위
Atlas Open Service 브로커의 인스턴스를 생성할 때 이를 cluster 범위 clusterServiceBroker 또는 네임스페이스 범위 serviceBroker 로 등록합니다.
클러스터 범위 및 네임스페이스 범위 브로커의 사용 사례에 대한 자세한 내용은 Kubernetes 서비스 카탈로그 문서를 참조하세요.
ClusterServiceBroker
ClusterServiceBroker (으)로 등록된 Atlas Open Service 브로커 인스턴스는 전체 Kubernetes 클러스터에서 사용할 수 있습니다. Atlas 복제본 세트 또는 샤드 cluster를 배포할 때는 연결된 clusterServiceClass 및 clusterServicePlan 리소스를 사용해야 합니다.
ServiceBroker
ServiceBroker (으)로 등록된 Atlas Open Service 브로커 인스턴스는 Kubernetes 클러스터 내의 단일 네임스페이스에서만 사용할 수 있습니다. Atlas 복제본 세트 또는 sharded cluster를 배포할 때는 동일한 네임스페이스로 범위가 지정된 serviceClass 및 servicePlan 리소스를 사용해야 합니다.
다중 Atlas Open Service 브로커 인스턴스
Atlas Open Service 브로커의 인스턴스를 생성하면 다음을 배포할 수 있습니다.
전체 Kubernetes cluster로 범위가 지정된 단일 Atlas Open Service Broker 인스턴스 또는
Kubernetes 클러스터 내의 자체 네임스페이스로 범위가 지정된 여러 Atlas Open Service 브로커 인스턴스
Atlas Open Service 브로커 설치
Kubernetes에 Atlas Open Service 브로커를 배포하려면 다음 절차를 따르세요.
Deployment 및 Service 리소스 정의를 만듭니다.
다음 리소스 정의 예시를 복사합니다.
이 파일은 원하는 구성에 맞게 수정할 수 있는 YAML 파일입니다. 여기에는
Deployment및Service사양이 모두 포함되어 있습니다.참고
이 예제에서는 배포 이름, 서비스 이름 및 pod 레이블로
atlas-service-broker를 사용합니다. 리소스 간에 일관적인 경우 이러한 필드를 다른 값으로 업데이트할 수 있습니다.# Deployment to run the service broker. apiVersion: apps/v1 kind: Deployment metadata: name: atlas-service-broker labels: app: atlas-service-broker spec: replicas: 1 selector: matchLabels: app: atlas-service-broker template: metadata: labels: app: atlas-service-broker spec: containers: - name: atlas-service-broker image: quay.io/mongodb/mongodb-atlas-service-broker:latest ports: - containerPort: 4000 env: - name: BROKER_HOST value: "0.0.0.0" # Service to expose the service broker inside the cluster. apiVersion: v1 kind: Service metadata: name: atlas-service-broker labels: app: atlas-service-broker spec: selector: # Will match pods deployed by the "atlas-service-broker" deployment. app: atlas-service-broker ports: - protocol: TCP port: 80 targetPort: 4000 원하는 텍스트 편집기를 열고 리소스 정의를 새 텍스트 파일에 붙여넣습니다.
Atlas Open Service Broker 서버가 수신하는 container 포트를 확인하거나 편집합니다.
Resource환경 변수설명기본값Deploymentspec.template.spec.containers.ports.containerPortAtlas Open Service 브로커 서버가 수신 대기하는 포트입니다.
Service리소스의targetPort값과 일치해야 합니다.4000Servicespec.ports.targetPortAtlas Open Service 브로커 서버가 수신 대기하는 포트입니다.
Deployment리소스의containerPort값과 일치해야 합니다.4000파일을
deployment-and-service.yaml(으)로 저장합니다.
Atlas Open Service 브로커를 설치합니다.
다음 kubectl 명령을 사용합니다.
kubectl apply -f deployment-and-service.yaml -n <NAMESPACE>
Kubernetes 시크릿을 만듭니다.
Atlas Open Service 브로커가 객체 를 생성하거나 업데이트하는 경우 프로그래매틱 API 키와 프로젝트 ID를 Kubernetes 시크릿 으로 저장해야 합니다..
동일한 네임스페이스에 여러 시크릿이 존재할 수 있습니다.
Kubernetes 시크릿을 생성하려면 다음을 수행합니다.
다음 사항이 있는지 확인합니다.
원하는 Atlas 프로그래밍 방식 API 키에 대한 공개 및 비공개 키.
프로그래밍 방식 API 키가 없는 경우 새 프로그래밍 방식 API 키를 생성합니다.
Atlas 프로젝트의 프로젝트 ID 입니다.
다음 리소스 정의 예시를 복사합니다.
이는 원하는 구성에 맞게 수정할 수 있는 YAML 입니다.
apiVersion: v1 kind: Secret metadata: name: <SECRET_NAME> type: Opaque stringData: username: <PUBLIC_KEY>@<PROJECT_ID> password: <PRIVATE_KEY> 다음 필드를 편집합니다:
필드 이름설명stringData.usernameAtlas 공개 키 뒤에@, 프로젝트 ID가 옵니다.stringData.passwordAtlas 비공개 키.username및password은(는) Atlas Open Service 브로커에 대한 기본 인증에 사용됩니다.예시
apiVersion: v1 kind: Secret metadata: name: atlas-service-broker-auth type: Opaque stringData: username: ABCAXNVY@5d49a272ce4bd97b2e1234abc password: 123e8d75-cxfb-x012-bx5c-abc4356e3xyz 파일을
secret.yaml(으)로 저장합니다.다음 Kubernetes 명령을 호출하여 시크릿을 생성합니다.
kubectl apply -f secret.yaml -n <NAMESPACE> 플래그는 네임스페이스 를 제한합니다. 이
-n시크릿이 적용됩니다.다음 Kubernetes 명령을 호출하여 시크릿을 확인합니다.
kubectl describe secrets/<SECRET_NAME> -n <NAMESPACE> 이 명령은 shell에서 시크릿 설명을 반환합니다.
Name: <SECRET_NAME> Namespace: <NAMESPACE> Labels: <none> Annotations: Type: Opaque Data ==== password: 36 bytes username: 36 bytes
Service 브로커 리소스 정의를 생성합니다.
다음 리소스 정의 예시를 복사합니다.
원하는 구성에 맞게 수정할 수 있는 YAML 파일입니다.
apiVersion: servicecatalog.k8s.io/v1beta1 kind: <SERVICE_BROKER_SCOPE> metadata: name: atlas-service-broker spec: url: http://<SERVICE_NAME>.<NAMESPACE> authInfo: basic: secretRef: name: <SECRET_NAME> namespace: <NAMESPACE> 다음 필드를 편집합니다:
필드 이름설명kind이 값은 Atlas Open Service 브로커를 전체 Kubernetes cluster에서 사용할 수 있는지, 아니면 Kubernetes cluster 내의 단일 네임스페이스에서만 사용할 수 있는지를 결정합니다. 서비스 브로커 리소스에 대한 자세한 내용 은 서비스 카탈로그 설명서를 참조하세요.
가능한 값은 다음과 같습니다.
ServiceBroker단일 네임스페이스로만 범위가 지정된 Atlas Open Service 브로커를 배포합니다. 모든 Atlas cluster는 Atlas Open Service 브로커와 동일한 네임스페이스에 프로비저닝되어야 합니다.ClusterServiceBroker전체 Kubernetes cluster로 범위가 지정된 Atlas Open Service 브로커를 배포합니다. Atlas cluster는 모든 네임스페이스에 프로비저닝할 수 있습니다.spec.urlhttp://<SERVICE_NAME>.<NAMESPACE>형식의 브로커 URL입니다.<SERVICE_NAME>Service리소스에 있는metadata.name의 값입니다.예시
http://atlas-service-broker.atlas spec.authInfo.basic.secretRef.name이전 단계에서 생성한 Kubernetes 시크릿의 이름입니다.spec.authInfo.basic.secretRef.namespace네임스페이스입니다.파일을
service-broker.yaml(으)로 저장합니다.
Atlas CLI를 사용하여 Atlas Open Service 브로커의 상태를 확인하세요.
svcat get brokers -n <NAMESPACE>
이 명령은 브로커의 상태를 반환합니다. 브로커 상태가 나타나지 않으면 잠시 기다렸다가 명령을 다시 호출합니다.
예시
다음 예는 ClusterServiceBroker 로 정의된 브로커의 상태를 보여줍니다. 이 브로커는 cluster 수준에서 배포되므로 네임스페이스가 없습니다.
NAME NAMESPACE URL STATUS +----------------------+-----------+-----------------------------------+--------+ atlas-service-broker http://atlas-service-broker.atlas Ready
브로커의 상태가 Ready 이외인 경우 service-broker.yaml metadata.name 를 다음 명령으로 전달하여 자세한 오류 메시지를 확인합니다.
svcat describe broker <METADATA.NAME> -n <NAMESPACE>
다음 단계
Atlas Open Service 브로커를 설치한 후 다음을 수행할 수 있습니다.
허용된 클라우드 서비스 제공자 및 인스턴스 크기 의 화이트리스트를 설정 합니다.