Docs Menu

Docs HomeAtlas Open Service Broker

Instalar y configurar Atlas Open Service Broker

En esta página

Importante

Atlas Open Service Broker está obsoleto. Utilice el operador Atlas de MongoDB en su lugar.

Nota

Este tutorial presupone conocimientos básicos de Kubernetes, pero incluye enlaces a la documentación pertinente siempre que sea posible. Si no está familiarizado con Kubernetes, consulte primero la documentación.

Para instalar Atlas Open Service Broker, debe:

  1. Configurar un método de pago para la facturación de Atlas.

  2. Crea un proyecto en el que se implementarán tus clústeres.

  3. Tener o generar una clave API programática.

    1. Otorgue a esta nueva clave API programática el rol de Propietario del proyecto.

    2. Añade el IP or CIDR block of any hosts that serve the Atlas Open Service Broker to the API Whitelist.

  1. Tenga una solución Kubernetes disponible para usar.

    Si necesitas una solución en Kubernetes, consulta la documentación de Kubernetes sobre cómo elegir la solución adecuada.

  2. Instalar el catálogo de servicios de Kubernetes.

  3. Instalar la CLI del catálogo de servicios de Kubernetes.

Atlas Open Service Broker es compatible con:

Cuando crea una instancia de Atlas Open Service Broker, la registra con Kubernetes como una instancia con alcance de clúster clusterServiceBroker o un serviceBroker con alcance de espacio de nombres.

Para obtener más información sobre los casos de uso de los brokers a nivel de clúster y a nivel de namespace, consulta la documentación del catálogo de servicios de Kubernetes.

Una instancia de Atlas Open Service Broker registrada como ClusterServiceBroker está disponible para todo el clúster de Kubernetes. Al implementar un conjunto de réplicas de Atlas o un clúster fragmentado, debe usar los recursos clusterServiceClass y clusterServicePlan asociados.

Una instancia de Atlas Open Service Broker registrada como ServiceBroker solo está disponible para un único espacio de nombres dentro del clúster de Kubernetes. Al implementar un conjunto de réplicas de Atlas o un clúster fragmentado, debe usar los recursos serviceClass y servicePlan dentro del mismo espacio de nombres.

Al crear una instancia de Atlas Open Service Broker, puede implementar:

  • Una única instancia de Atlas Open Service Broker con alcance en todo el clúster de Kubernetes o

  • Varias instancias de Atlas Open Service Broker con alcance en sus propios espacios de nombres dentro del clúster de Kubernetes

    Importante

    Si decide implementar varias instancias de Atlas Open Service Broker, implemente solo una por espacio de nombres. Varias instancias de Atlas Open Service Broker no pueden coordinarse entre sí dentro del mismo espacio de nombres.

Para implementar Atlas Open Service Broker en Kubernetes, utilice el siguiente procedimiento.

1

Para simplificar su instalación, considere crear un espacio de nombres etiquetado como atlas usando el siguiente comando kubectl:

kubectl create namespace atlas

Si no desea utilizar el espacio de nombres atlas, puede etiquetar su espacio de nombres como desee:

kubectl create namespace <NAMESPACE_NAME>
2
  1. Copie el siguiente ejemplo de definición de recurso.

    Este es un archivo YAML que puede modificar para adaptarlo a la configuración deseada. Incluye Deployment las Service especificaciones y.

    Nota

    El ejemplo usa atlas-service-broker como nombre de la implementación, nombre del servicio y etiqueta del pod. Puede actualizar estos campos con otros valores siempre que sea coherente entre los recursos.

    ---
    # 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. Abra su editor de texto preferido y pegue la definición del recurso en un nuevo archivo de texto.

  3. Confirme o edite el puerto del contenedor en el que escucha el servidor Atlas Open Service Broker.

    Resource
    Variable de entorno
    Descripción
    predeterminado
    Deployment
    spec.template.spec
    .containers.ports.containerPort

    El puerto en el que escucha el servidor Atlas Open Service Broker.

    Debe coincidir con el valor de targetPort en el recurso Service.

    4000
    Service
    spec.ports.targetPort

    El puerto en el que escucha el servidor Atlas Open Service Broker.

    Debe coincidir con el valor de containerPort en el recurso Deployment.

    4000
  4. Guarde el archivo como deployment-and-service.yaml.

3

Utilice el siguiente comando kubectl:

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

Para que Atlas Open Service Broker cree o actualice objetos en su proyecto Atlas, debe almacenar su clave de API programática y el ID del proyecto como un secreto de Kubernetes.

Pueden existir varios secretos en el mismo espacio de nombres.

Para crear su secreto de Kubernetes:

  1. Asegúrese de tener lo siguiente:

    • Claves públicas y privadas para la clave API programática de Atlas que desee.

      Si no tiene una clave API programática, genere una nueva clave API programática.

    • El ID del proyecto para su proyecto Atlas.

  2. Copie el siguiente ejemplo de definición de recurso.

    Este es un YAML que puedes modificar para cumplir con tu configuración deseada.

    apiVersion: v1
    kind: Secret
    metadata:
    name: <SECRET_NAME>
    type: Opaque
    stringData:
    username: <PUBLIC_KEY>@<PROJECT_ID>
    password: <PRIVATE_KEY>
  3. Edite los siguientes campos:

    Nombre de campo
    Descripción
    stringData.username
    Tu clave pública de Atlas seguida de @ y tu ID del grupo.
    stringData.password
    Su clave privada de Atlas.

    username y password se utilizan para la autenticación básica contra Atlas Open Service Broker.

    Ejemplo

    apiVersion: v1
    kind: Secret
    metadata:
    name: atlas-service-broker-auth
    type: Opaque
    stringData:
    username: ABCAXNVY@5d49a272ce4bd97b2e1234abc
    password: 123e8d75-cxfb-x012-bx5c-abc4356e3xyz
  4. Guarde el archivo como secret.yaml.

  5. Ejecútese el siguiente comando de Kubernetes para crear su secret:

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

    La -n bandera limita el espacio de nombres al que se aplica este secreto.

  6. Invoque el siguiente comando de Kubernetes para verificar su secreto:

    kubectl describe secrets/<SECRET_NAME> -n <NAMESPACE>

    Este comando devuelve una descripción secreta en el shell:

    Name: <SECRET_NAME>
    Namespace: <NAMESPACE>
    Labels: <none>
    Annotations:
    Type: Opaque
    Data
    ====
    password: 36 bytes
    username: 36 bytes
5
  1. Copie el siguiente ejemplo de definición de recurso.

    Este es un archivo YAML que puedes modificar para adaptarlo a tu configuración deseada.

    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. Edite los siguientes campos:

    Nombre de campo
    Descripción
    kind

    Este valor determina si Atlas Open Service Broker está disponible para todo el clúster de Kubernetes o solo para un único espacio de nombres dentro del clúster. Para obtener más información sobre los recursos de Service Broker, consulte la documentación del Catálogo de servicios.

    Los valores posibles son:

    ServiceBroker
    Implementa Atlas Open Service Broker en un único espacio de nombres. Todos los clústeres de Atlas deben aprovisionarse en el mismo espacio de nombres que Atlas Open Service Broker.
    ClusterServiceBroker
    Implementa Atlas Open Service Broker en todo un clúster de Kubernetes. Los clústeres de Atlas se pueden aprovisionar en cualquier espacio de nombres.
    spec.url

    La URL del bróker en el formato http://<SERVICE_NAME>.<NAMESPACE>.

    <SERVICE_NAME> es el valor de metadata.name en su recurso Service.

    Ejemplo

    http://atlas-service-broker.atlas
    spec.authInfo
    .basic.secretRef.name
    El nombre del secreto de Kubernetes que creó en el paso anterior.
    spec.authInfo
    .basic.secretRef.namespace
    Su espacio de nombres.
  3. Guarde el archivo como service-broker.yaml.

6

Utilice el siguiente comando kubectl:

kubectl apply -f service-broker.yaml -n <NAMESPACE>
7
svcat get brokers -n <NAMESPACE>

El comando devuelve el estado del bróker. Si el estado del bróker no aparece, espere unos momentos y vuelva a invocar el comando.

Ejemplo

El siguiente ejemplo muestra el estado de un agente definido como ClusterServiceBroker. Dado que este agente está implementado a nivel de clúster, no hay espacio de nombres.

NAME NAMESPACE URL STATUS
+----------------------+-----------+-----------------------------------+--------+
atlas-service-broker http://atlas-service-broker.atlas Ready

Si su agente tiene un estado distinto de Ready, pase el metadata.name de service-broker.yaml al siguiente comando para ver un mensaje de error detallado:

svcat describe broker <METADATA.NAME> -n <NAMESPACE>

Después de instalar Atlas Open Service Broker, puede:

Compartir comentarios
© 2023 MongoDB, Inc.

Acerca de

© 2023 MongoDB, Inc.