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.
Requisitos previos
Requisitos previos de Atlas
Para instalar Atlas Open Service Broker, debe:
Configurar un método de pago para la facturación de Atlas.
Crea un proyecto en el que se implementarán tus clústeres.
Tener o generar una clave API programática.
Otorgue a esta nueva clave API programática el rol de Propietario del proyecto.
Añade el IP or CIDR block of any hosts that serve the Atlas Open Service Broker to the API Whitelist.
Requisitos previos de Kubernetes
Tenga una solución Kubernetes disponible para usar.
Si necesita una solución de Kubernetes, consulte la documentación de Kubernetes sobre cómo elegir la solución adecuada.
Instala el Catálogo de servicios de Kubernetes.
Instalar la CLI del catálogo de servicios de Kubernetes.
Considerations
Compatibilidad con Kubernetes
Atlas Open Service Broker es compatible con:
Kubernetes v1.13 o posterior
Catálogo de servicios de Kubernetes0 2v..1 o posterior
Alcance del Broker de Servicios Abiertos Atlas
When you create an instance of the Atlas Open Service Broker, you register it with Kubernetes as either a cluster-scoped clusterServiceBroker or a namespace-scoped serviceBroker.
Para obtener más información sobre los casos de uso de agentes con alcance de clúster y de espacio de nombres, consulte la documentación del Catálogo de servicios de Kubernetes.
ClusterServiceBroker
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.
ServiceBroker
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.
Varias instancias de Atlas Open Service Broker
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.
Instala el Broker de Servicio Abierto de Atlas
Para implementar Atlas Open Service Broker en Kubernetes, utilice el siguiente procedimiento.
Create a namespace for your Kubernetes deployment.
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>
Create the Deployment and Service resource definition.
Copie el siguiente ejemplo de definición de recurso.
This is a YAML file that you can modify to meet your desired configuration. It includes both the
DeploymentandServicespecifications.Nota
El ejemplo usa
atlas-service-brokercomo 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 Abra su editor de texto preferido y pegue la definición del recurso en un nuevo archivo de texto.
Confirme o edite el puerto del contenedor en el que escucha el servidor Atlas Open Service Broker.
ResourceVariable de entornoDescripciónpredeterminadoDeploymentspec.template.spec.containers.ports.containerPortEl puerto en el que escucha el servidor Atlas Open Service Broker.
Debe coincidir con el valor de
targetPorten el recursoService.4000Servicespec.ports.targetPortEl puerto en el que escucha el servidor Atlas Open Service Broker.
Debe coincidir con el valor de
containerPorten el recursoDeployment.4000Guarde el archivo como
deployment-and-service.yaml.
Instalar Atlas Open Service Broker.
Utilice el siguiente comando kubectl:
kubectl apply -f deployment-and-service.yaml -n <NAMESPACE>
Crea un secreto de Kubernetes.
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:
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.
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> Edite los siguientes campos:
Nombre de campoDescripciónstringData.usernameTu clave pública de Atlas seguida de
@y tu ID del grupo.stringData.passwordSu clave privada de Atlas.
usernameypasswordse 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 Guarde el archivo como
secret.yaml.Ejecútese el siguiente comando de Kubernetes para crear su secret:
kubectl apply -f secret.yaml -n <NAMESPACE> La
-nbandera limita el espacio de nombres al que se aplica este secreto.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
Crear una definición de recurso de agente de servicio.
Copie el siguiente ejemplo de definición de recurso.
This is a YAML file that you can modify to meet your desired configuration.
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> Edite los siguientes campos:
Nombre de campoDescripciónkindEste 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:
ServiceBrokerImplementa 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.
ClusterServiceBrokerImplementa 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.urlLa URL del bróker en el formato
http://<SERVICE_NAME>.<NAMESPACE>.<SERVICE_NAME>is the value ofmetadata.namein yourServiceresource.Ejemplo
http://atlas-service-broker.atlas spec.authInfo.basic.secretRef.nameEl nombre del secreto de Kubernetes que creó en el paso anterior.
spec.authInfo.basic.secretRef.namespaceSu espacio de nombres.
Guarde el archivo como
service-broker.yaml.
Register the Atlas Open Service Broker with the Service Catalog
Utilice el siguiente comando kubectl:
kubectl apply -f service-broker.yaml -n <NAMESPACE>
Verifique el estado de Atlas Open Service Broker con la CLI del Catálogo de servicios.
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>
Próximos pasos
Después de instalar Atlas Open Service Broker, puede:
Establezca una lista blanca de proveedores de servicios en la nube y tamaños de instancias permitidos.
Implementar un conjunto de réplicas o un clúster fragmentado.