Docs Menu

Docs HomeAtlas Open Service 브로커

Atlas Open Service 브로커 설치 및 구성

이 페이지의 내용

중요

Atlas Open Service 브로커는 더 이상 사용되지 않습니다. MongoDB Atlas 연산자 사용 사용할 수 있습니다.

참고

이 튜토리얼은 Kubernetes에 대한 약간의 지식이 있다고 가정하지만 가능한 경우 관련 Kubernetes 문서에 대한 링크를 제공합니다. Kubernetes에 대해 잘 모르는 경우 먼저 Kubernetes 설명서를 검토하세요.

Atlas Open Service 브로커를 설치하려면 다음을 수행해야 합니다.

  1. Atlas 청구를 위한 결제 수단 을 설정합니다.

  2. cluster를 배포할 프로젝트 를 만듭니다.

  3. 프로그래밍 방식 API 키를 보유하거나 생성합니다.

    1. 이 새 프로그래매틱 API 키에 프로젝트 소유자 역할을 부여합니다.

    2. Atlas Open Service 브로커를 제공하는 모든 호스트의 IP 또는 CIDR 블록을 API 화이트리스트에 추가합니다.

  1. 사용할 수 있는 Kubernetes 솔루션이 있어야 합니다.

    Kubernetes 솔루션이 필요한 경우 올바른 솔루션 선택에 대한 Kubernetes 설명서를 참조하세요.

  2. Kubernetes 서비스 카탈로그 설치 .

  3. Kubernetes Atlas CLI를 설치합니다.

Atlas Open Service 브로커는 다음과 호환됩니다:

  • Kubernetes v1.13 이상

  • Kubernetes 서비스 카탈로그 v0.2.1 이상

Atlas Open Service 브로커의 인스턴스를 생성할 때 이를 cluster 범위 clusterServiceBroker 또는 네임스페이스 범위 serviceBroker 로 등록합니다.

클러스터 범위 및 네임스페이스 범위 브로커의 사용 사례에 대한 자세한 내용은 Kubernetes 서비스 카탈로그 문서를 참조하세요.

ClusterServiceBroker (으)로 등록된 Atlas Open Service 브로커 인스턴스는 전체 Kubernetes 클러스터에서 사용할 수 있습니다. Atlas 복제본 세트 또는 샤드 cluster를 배포할 때는 연결된 clusterServiceClassclusterServicePlan 리소스를 사용해야 합니다.

ServiceBroker (으)로 등록된 Atlas Open Service 브로커 인스턴스는 Kubernetes 클러스터 내의 단일 네임스페이스에서만 사용할 수 있습니다. Atlas 복제본 세트 또는 sharded cluster를 배포할 때는 동일한 네임스페이스로 범위가 지정된 serviceClassservicePlan 리소스를 사용해야 합니다.

Atlas Open Service 브로커의 인스턴스를 생성하면 다음을 배포할 수 있습니다.

  • 전체 Kubernetes cluster로 범위가 지정된 단일 Atlas Open Service Broker 인스턴스 또는

  • Kubernetes 클러스터 내의 자체 네임스페이스로 범위가 지정된 여러 Atlas Open Service 브로커 인스턴스

    중요

    여러 Atlas Open Service 브로커 인스턴스를 배포하기로 선택한 경우 네임스페이스 당 하나의 인스턴스만 배포합니다. . 여러 Atlas Open Service Broker 인스턴스는 동일한 네임스페이스 내에서 서로 조정할 수 없습니다.

Kubernetes에 Atlas Open Service 브로커를 배포하려면 다음 절차를 따르세요.

1

설치를 간소화하려면 다음 atlas kubectl 을 사용하여 로 레이블이 지정된 네임스페이스를 만드는 것이 좋습니다. 명령:

kubectl create namespace atlas

atlas 네임스페이스를 사용하지 않으려면 네임스페이스에 원하는 레이블을 지정할 수 있습니다.

kubectl create namespace <NAMESPACE_NAME>
2
  1. 다음 리소스 정의 예시를 복사합니다.

    이 파일은 원하는 구성에 맞게 수정할 수 있는 YAML 파일입니다. 여기에는 DeploymentService 사양이 모두 포함되어 있습니다.

    참고

    이 예제에서는 배포 이름, 서비스 이름 및 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
  2. 원하는 텍스트 편집기를 열고 리소스 정의를 새 텍스트 파일에 붙여넣습니다.

  3. Atlas Open Service Broker 서버가 수신하는 container 포트를 확인하거나 편집합니다.

    Resource
    환경 변수
    설명
    기본값
    Deployment
    spec.template.spec
    .containers.ports.containerPort

    Atlas Open Service 브로커 서버가 수신 대기하는 포트입니다.

    Service 리소스의 targetPort 값과 일치해야 합니다.

    4000
    Service
    spec.ports.targetPort

    Atlas Open Service 브로커 서버가 수신 대기하는 포트입니다.

    Deployment 리소스의 containerPort 값과 일치해야 합니다.

    4000
  4. 파일을 deployment-and-service.yaml(으)로 저장합니다.

3

다음 kubectl 명령을 사용합니다.

kubectl apply -f deployment-and-service.yaml -n <NAMESPACE>
4

Atlas Open Service 브로커가 객체 를 생성하거나 업데이트하는 경우 프로그래매틱 API 키와 프로젝트 ID를 Kubernetes 시크릿 으로 저장해야 합니다..

동일한 네임스페이스에 여러 시크릿이 존재할 수 있습니다.

Kubernetes 시크릿을 생성하려면 다음을 수행합니다.

  1. 다음 사항이 있는지 확인합니다.

  2. 다음 리소스 정의 예시를 복사합니다.

    이는 원하는 구성에 맞게 수정할 수 있는 YAML 입니다.

    apiVersion: v1
    kind: Secret
    metadata:
    name: <SECRET_NAME>
    type: Opaque
    stringData:
    username: <PUBLIC_KEY>@<PROJECT_ID>
    password: <PRIVATE_KEY>
  3. 다음 필드를 편집합니다:

    필드 이름
    설명
    stringData.username
    Atlas 공개 키 뒤에 @ , 프로젝트 ID가 옵니다.
    stringData.password
    Atlas 비공개 키.

    usernamepassword 은(는) 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
  4. 파일을 secret.yaml(으)로 저장합니다.

  5. 다음 Kubernetes 명령을 호출하여 시크릿을 생성합니다.

    kubectl apply -f secret.yaml -n <NAMESPACE>

    플래그는 네임스페이스 를 제한합니다. 이 -n 시크릿이 적용됩니다.

  6. 다음 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
5
  1. 다음 리소스 정의 예시를 복사합니다.

    원하는 구성에 맞게 수정할 수 있는 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>
  2. 다음 필드를 편집합니다:

    필드 이름
    설명
    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.url

    http://<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
    네임스페이스입니다.
  3. 파일을 service-broker.yaml(으)로 저장합니다.

6

다음 kubectl 명령을 사용합니다.

kubectl apply -f service-broker.yaml -n <NAMESPACE>
7
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 브로커를 설치한 후 다음을 수행할 수 있습니다.

피드백 공유
© 2021 MongoDB, Inc.

회사 정보

© 2021 MongoDB, Inc.