Docs 主页 → Atlas Open Service Broker
安装和配置 Atlas Open Service Broker
在此页面上
- 先决条件
- Atlas 先决条件
- Kubernetes 先决条件
- Considerations
- Kubernetes 兼容性
- Atlas Open Service Broker 范围
- 多个 Atlas Open Service Broker 实例
- 安装 Atlas Open Service Broker
- 创建 命名空间 用于 Kubernetes 部署。
- 创建
Deployment
和Service
资源定义。 - 安装 Atlas Open Service Broker。
- 创建 Kubernetes 密钥。
- 创建 Service Broker 资源定义。
- 向 服务目录 注册 Atlas Open Service Broker
- 使用 Service Catalog CLI 检查 Atlas Open Service Broker 的状态。
- 后续步骤
重要
Atlas Open Service Broker 已弃用。 使用 MongoDB Atlas 操作符 相反。
注意
本教程假定您对 Kubernetes 有一定的了解,但尽可能链接到相关的 Kubernetes 文档。 如果您不熟悉 Kubernetes,请先查看 Kubernetes 文档。
先决条件
Atlas 先决条件
要安装 Atlas Open Service Broker,您必须:
为 Atlas 计费设置付款方式。
创建一个将在其中部署集群的项目。
拥有或生成编程 API 密钥。
Kubernetes 先决条件
准备一个可用的 Kubernetes 解决方案。
如果您需要 Kubernetes 解决方案,请参阅 Kubernetes 文档,了解如何选择正确的解决方案。
安装 Kubernetes Service Catalog 。
安装 Kubernetes Service Catalog CLI。
Considerations
Kubernetes 兼容性
Atlas Open Service Broker 兼容:
Kubernetes v1.13 或更高版本
Kubernetes 服务目录 v0.2.1 或更高版本
Atlas Open Service Broker 范围
当您创建 Atlas Open Service Broker 的实例时,您可以将其注册到 Kubernetes,作为集群范围的 clusterServiceBroker
或命名空间范围的serviceBroker
。
有关集群范围和命名空间范围的代理使用案例的更多信息,请参阅 Kubernetes 服务目录文档。
ClusterServiceBroker

注册为ClusterServiceBroker
的 Atlas Open Service Broker 实例可供整个 Kubernetes 集群使用。 部署 Atlas 副本集或分片集群时,必须使用关联的clusterServiceClass
和clusterServicePlan
资源。
ServiceBroker

注册为ServiceBroker
的 Atlas Open Service Broker 实例仅可用于 Kubernetes 集群中的单个命名空间。 部署 Atlas 副本集或分片集群时,必须使用作用域为同一命名空间的serviceClass
和servicePlan
资源。
多个 Atlas Open Service Broker 实例
创建 Atlas Open Service Broker 实例时,您可以部署:
范围为整个 Kubernetes 集群的单个 Atlas Open Service Broker 实例,或
多个 Atlas Open Service Broker 实例在 Kubernetes 集群中限定各自的命名空间
重要
如果选择部署多个 Atlas Open Service Broker 实例,请每个 命名空间 仅部署一个实例 。多个 Atlas Open Service Broker 实例无法在同一命名空间内相互协调。
安装 Atlas Open Service Broker
要在 Kubernetes 中部署 Atlas Open Service Broker,请执行以下过程。
创建Deployment
和Service
资源定义。
复制以下资源定义示例。
这是一个YAML文件,您可以修改该文件以满足所需的配置。 它包括
Deployment
和Service
规范。注意
该示例使用
atlas-service-broker
作为部署名称、服务名称和 Pod 标签。 只要跨资源保持一致,您就可以使用其他值更新这些字段。# 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环境变量说明默认Deployment
spec.template.spec
.containers.ports.containerPort
Atlas Open Service Broker 服务器侦听的端口。
必须与
Service
资源中的targetPort
值匹配。4000
Service
spec.ports.targetPort
Atlas Open Service Broker 服务器侦听的端口。
必须与
Deployment
资源中的containerPort
值匹配。4000
将文件另存为
deployment-and-service.yaml
。
安装 Atlas Open Service Broker。
使用以下 kubectl 命令:
kubectl apply -f deployment-and-service.yaml -n <NAMESPACE>
创建 Kubernetes 密钥。
用于 Atlas Open Service Broker 创建或更新 对象 在您的 Atlas 项目中,您需要将编程 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.username
Atlas 公钥,后跟@
和项目 ID。stringData.password
您的 Atlas 私钥。username
和password
用于针对 Atlas Open Service Broker 进行基本身份验证。例子
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 Broker 资源定义。
复制以下资源定义示例。
这是一个 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 Broker 是可用于整个 Kubernetes 集群,还是仅可用于 Kubernetes 集群中的单个命名空间。 有关服务代理资源的更多信息,请参阅 服务目录文档。
可能的值为:
ServiceBroker
部署仅适用于单个命名空间的 Atlas Open Service Broker。 所有 Atlas 集群都必须在与 Atlas Open Service Broker 相同的命名空间中预配。ClusterServiceBroker
部署适用于整个 Kubernetes 集群的 Atlas Open Service Broker。 可以在任何命名空间中预配 Atlas 集群。spec.url
代理的 URL,格式为
http://<SERVICE_NAME>.<NAMESPACE>
。<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 Open Service Broker
使用以下 kubectl 命令:
kubectl apply -f service-broker.yaml -n <NAMESPACE>
使用 Service Catalog CLI 检查 Atlas Open Service Broker 的状态。
svcat get brokers -n <NAMESPACE>
该命令会返回代理的状态。 如果没有显示代理的状态,请等待片刻,然后再次调用该命令。
例子
以下示例显示了定义为ClusterServiceBroker
的代理的状态。 由于此代理是在集群级别部署的,因此没有命名空间。
NAME NAMESPACE URL STATUS +----------------------+-----------+-----------------------------------+--------+ atlas-service-broker http://atlas-service-broker.atlas Ready
如果代理的状态不是Ready
,请将metadata.name
从service-broker.yaml
传递到以下命令以查看详细的错误消息:
svcat describe broker <METADATA.NAME> -n <NAMESPACE>
后续步骤
安装 Atlas Open Service Broker 后,您可以: