Docs 菜单
Docs 主页
/
MongoDB Enterprise Kubernetes Operator
/

配置 Ops Manager 资源以使用远程模式

在此页面上

在默认配置中,MongoDB 助手和备份守护程序通过 Internet 从 MongoDB, Inc.

如果 Kubernetes 集群中的节点无法访问互联网,您可以将 Ops Manager 配置为使用 Kubernetes 操作符在远程模式下运行。备份守护程序和托管 MongoDB 资源仅从 Ops Manager 下载安装存档,Ops Manager 将下载请求代理到部署到 Kubernetes 集群的本地 Web 服务器或 S3 兼容存储上的 HTTP 端点。

此过程介绍如何将 Nginx HTTP 服务器部署到 Kubernetes 集群,以托管 MongoDB 安装存档。

部署 Ops Manager 资源 。以下过程向您展示如何更新 Ops Manager Kubernetes 对象 以启用远程模式。

1

如果尚未执行,请运行以下命令,执行您创建的命名空间中的所有kubectl命令。

注意

MongoDB Ops Manager如果要在多 Kubernetes 集群 部署中部署MongoDB 资源:

  • context 设置为中心集群的名称,例如:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME"

  • --namespace设置为您用于多 Kubernetes 集群 MongoDB 部署的相同范围,例如: kubectl config --namespace "mongodb"

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2

本教程中的 ConfigMap 将 Nginx 配置为:

  • 运行名为localhost的 HTTP 服务器,侦听 Kubernetes 集群中节点上的端口80 ,然后

  • 将对特定资源的 HTTP 请求路由到提供 MongoDB Server 和 MongoDB Database Tools 安装存档的位置。

  1. 将以下示例 Nginx ConfigMap 粘贴到文本编辑器中:

    1---
    2apiVersion: v1
    3kind: ConfigMap
    4metadata:
    5 name: nginx-conf
    6data:
    7 nginx.conf: |
    8 events {}
    9 http {
    10 server {
    11 server_name localhost;
    12 listen 80;
    13 location /linux/ {
    14 alias /mongodb-ops-manager/mongodb-releases/linux/;
    15 }
    16 location /tools/ {
    17 alias /tools/;
    18 }
    19 }
    20 }
    21...
  2. .yaml 文件扩展名保存此文件。

  3. 通过对您创建的 ConfigMap 文件调用以下kubectl命令来创建 Nginx ConfigMap:

    kubectl apply -f <nginix-configmap>.yaml
3

本教程中的 Nginx 资源配置:

  • 部署一个 Nginx 副本,

  • 创建卷挂载以存储 MongoDB Server 和 MongoDB database Tools 安装存档,以及

  • 定义 初始化容器 curl使用 命令将 Nginx 提供的安装存档下载到您在 Kubernetes 集群中部署的 MongoDB 数据库资源。

4

本教程中的服务通过端口80将 Nginx 暴露给来自 Kubernetes 集群中其他节点的流量。 这允许您使用 Kubernetes 操作符部署的 MongoDB database 资源 pods 从 Nginx 下载安装存档。

运行以下命令,为 Nginx 部署创建服务:

  1. 将以下示例服务粘贴到文本编辑器中:

    1---
    2apiVersion: v1
    3kind: Service
    4metadata:
    5 name: nginx-svc
    6 labels:
    7 app: nginx
    8spec:
    9 ports:
    10 - port: 80
    11 protocol: TCP
    12 selector:
    13 app: nginx
    14...
  2. .yaml 文件扩展名保存此文件。

  3. 通过对创建的服务文件调用以下kubectl命令来创建服务:

    kubectl apply -f <nginix-service>.yaml
5

突出显示的部分使用以下 Ops Manager 配置设置:

  • automation.versions.source: remotespec.configuration远程模式。

  • automation.versions.download.baseUrlspec.configuration中提供为 MongoDB 安装存档提供服务的 HTTP 资源的基本 URL。

    更新此行,将<namespace>替换为您使用 Kubernetes 操作符将资源部署到的命名空间。

  • automation.versions.download.baseUrl.allowOnlyAvailableBuilds: "false" spec.configuration中,以帮助确保企业版构建没有问题。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: ops-manager-localmode
6spec:
7 replicas: 1
8 version: "6.0.0"
9 adminCredentials: ops-manager-admin-secret
10 configuration:
11 # this enables remote mode in Ops Manager
12 automation.versions.source: remote
13 automation.versions.download.baseUrl: "http://nginx-svc.<namespace>.svc.cluster.local:8080"
14
15 backup:
16 enabled: false
17
18 applicationDatabase:
19 members: 3
20...
6

打开您首选的文本编辑器并粘贴 对象 规范到资源文件中的相应位置。

7
8

对 Ops Manager 资源定义的文件名调用以下kubectl命令:

kubectl apply -f <opsmgr-resource>.yaml
9

要检查 Ops Manager 资源的状态,请调用以下命令:

kubectl get om -o yaml -w

有关资源部署状态的信息,请参阅排除 Kubernetes Operator 故障

Ops Manager 资源完成Pending阶段后,该命令将返回类似于以下内容的输出:

1status:
2 applicationDatabase:
3 lastTransition: "2020-05-15T16:20:22Z"
4 members: 3
5 phase: Running
6 type: ReplicaSet
7 version: "4.4.5-ubi8"
8 backup:
9 phase: ""
10 opsManager:
11 lastTransition: "2020-05-15T16:20:26Z"
12 phase: Running
13 replicas: 1
14 url: http://ops-manager-localmode-svc.mongodb.svc.cluster.local:8080
15 version: "6.0.0"

复制status.opsManager.url字段的值,该字段说明资源的连接 URL 。 您可以在创建 ConfigMap 时使用此值 在此过程的稍后部分中。

10
  1. 如果尚未完成,请完成以下先决条件:

  2. 在部署 Ops Manager 的同一命名空间中部署MongoDB 数据库资源。确保您:

    1. 将资源的spec.opsManager.configMapRef.name与 ConfigMap 的metadata.name进行匹配。

    2. 将资源的spec.credentials与您创建的包含 Ops Manager 编程 API 密钥对的密钥名称进行匹配。

在使用 Kubernetes Operator 创建的 MongoDB database 资源 container 中运行的 MongoDB 代理通过 Nginx 从 Ops Manager 下载安装存档,而不是从互联网下载。

← 部署
配置  →