Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes 演算子
/

リモート モードを使用するようにMongoDB Ops Managerリソースを構成する

項目一覧

デフォルト構成では、MongoDB Agent の および バックアップデーモンは、MongoDB, Inc. からインターネット経由で MongoDB インストール アーカイブにアクセスします。

MongoDB Ops Managerをリモート モードで実行するように構成すると、バックアップデーモンと管理対象のMongoDBリソースのダウンロード インストールはMongoDB Ops Managerからのみアーカイブされます。これは、ローカル ウェブ サーバーまたは S3 互換ストア上のHTTPエンドポイントへのダウンロード リクエストをプロキシします。 Kubernetesクラスターにデプロイされた

MongoDB Ops Managerリソースを配置します。

次の手順では、Nginx HTTP サーバーを Kubernetes クラスターに配置して MongoDB インストール アーカイブをホストします。

1

まだ作成していない場合は、次のコマンドを実行して、作成した名前空間ですべてのkubectlコマンドを実行します

注意

MongoDB Ops Manager リソースを複数の Kubernetes クラスター MongoDB 配置に配置している場合、次の手順に従います。

  • contextを中央クラスターの名前に設定します(例: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME"

  • MongoDB のマルチ配置に使用したのと同じスコープ(例: kubectl config --namespace "mongodb"--namespaceを設定します。

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

このチュートリアルの ConfigMap により、Ngix は次のように構成されます。

  • Kubernetes クラスター内のノードでポート80をリッスンするlocalhostという名前の HTTP サーバーを実行し、

  • MongoDB Server および MongoDB Database Tools のインストール アーカイブを提供するロケーションに、特定のリソースに対する HTTP リクエストをルーティングします。

  1. 次の例の Ninx 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コマンドを呼び出して、Ninx ConfigMap を作成します。

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

このチュートリアルの Ninx リソース構成は次のとおりです。

  • 次の 1 つの Ninx レプリカを配置します:

  • MongoDB Server および MongoDB Database Tools のインストール アーカイブを保存するためのボリュームマウントを作成し、

  • 初期化コンテナ を定義します curlは、 コマンドを使用してインストール アーカイブをダウンロードし、Kubernetes クラスターに配置した MongoDB Database リソースに提供します。

  1. 次の例の Ninx リソース構成をテキスト エディターに貼り付けます。

    1---
    2apiVersion: apps/v1
    3kind: Deployment
    4metadata:
    5 name: nginx-deployment
    6spec:
    7 replicas: 1
    8 selector:
    9 matchLabels:
    10 app: nginx
    11 template:
    12 metadata:
    13 labels:
    14 app: nginx
    15 spec:
    16 containers:
    17 - image: nginx:1.14.2
    18 imagePullPolicy: IfNotPresent
    19 name: nginx
    20 ports:
    21 - containerPort: 80
    22 volumeMounts:
    23 - mountPath: /mongodb-ops-manager/mongodb-releases/linux
    24 name: mongodb-versions
    25 - mountPath: /tools/db/
    26 name: mongodb-tools
    27 - name: nginx-conf
    28 mountPath: /etc/nginx/nginx.conf
    29 subPath: nginx.conf
    30 initContainers:
    31 - name: setting-up-rhel-mongodb
    32 image: curlimages/curl:latest
    33 command:
    34 - curl
    35 - -L
    36 - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    37 - -o
    38 - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    39 volumeMounts:
    40 - name: mongodb-versions
    41 mountPath: /mongodb-ops-manager/mongodb-releases/linux
    42 - name: setting-up-rhel-mongodb-tools
    43 image: curlimages/curl:latest
    44 command:
    45 - curl
    46 - -L
    47 - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
    48 - -o
    49 - /tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
    50 volumeMounts:
    51 - name: mongodb-tools
    52 mountPath: /tools/db/
    53 restartPolicy: Always
    54 terminationGracePeriodSeconds: 30
    55 volumes:
    56 - name: mongodb-versions
    57 emptyDir: {}
    58 - name: mongodb-tools
    59 emptyDir: {}
    60 - configMap:
    61 name: nginx-conf
    62 name: nginx-conf
    63...
  2. 例で強調表示された行を変更して、インストールする MongoDB Server のバージョンを指定します。

    たとえば、MongoDB バージョン4.0.2を別のデータベース バージョンに置き換えるには、次のブロックを更新します。

    - name: setting-up-rhel-mongodb
    image: curlimages/curl:latest
    command:
    - curl
    - -L
    - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    - -o
    - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz

    MongoDB Database Tools のバージョンを変更するには、次のようにブロックを更新します。

    - name: setting-up-rhel-mongodb-tools
    image: curlimages/curl:latest
    command:
    - curl
    - -L
    - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
    - -o
    - /tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
  3. 複数のバージョンを読み込むには、 curlコマンドを追加します

    を、Ninx で提供するバージョンごとに適切な initContainer に設定します。

    たとえば、MongoDB 6.0.1を提供するように Ninx を構成するには、次の手順に従います。

    - name: setting-up-rhel-mongodb
    image: curlimages/curl:latest
    command:
    - curl
    - -L
    - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    - -o
    - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
  4. このファイルは、 .yamlファイル拡張子で保存します。

  5. 作成した Ninx リソース ファイルで次のkubectlコマンドを呼び出して Ninx を配置します。

    kubectl apply -f <nginix>.yaml
  1. 次の例の Ninx リソース構成をテキスト エディターに貼り付けます。

    1---
    2apiVersion: apps/v1
    3kind: Deployment
    4metadata:
    5 name: nginx-deployment
    6spec:
    7 replicas: 1
    8 selector:
    9 matchLabels:
    10 app: nginx
    11 template:
    12 metadata:
    13 labels:
    14 app: nginx
    15 spec:
    16 containers:
    17 - image: nginx:1.14.2
    18 imagePullPolicy: IfNotPresent
    19 name: nginx
    20 ports:
    21 - containerPort: 80
    22 volumeMounts:
    23 - mountPath: /mongodb-ops-manager/mongodb-releases/linux
    24 name: mongodb-versions
    25 - mountPath: /tools/db/
    26 name: mongodb-tools
    27 - name: nginx-conf
    28 mountPath: /etc/nginx/nginx.conf
    29 subPath: nginx.conf
    30 initContainers:
    31 - name: setting-up-rhel-mongodb
    32 image: curlimages/curl:latest
    33 command:
    34 - curl
    35 - -L
    36 - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel<version>-4.2.0.tgz
    37 - -o
    38 - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel<version>-4.2.0.tgz
    39 volumeMounts:
    40 - name: mongodb-versions
    41 mountPath: /mongodb-ops-manager/mongodb-releases/linux
    42 - name: setting-up-rhel-mongodb-tools
    43 image: curlimages/curl:latest
    44 command:
    45 - curl
    46 - -L
    47 - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel<version>-x86_64-100.1.0.tgz
    48 - -o
    49 - /tools/db/mongodb-database-tools-rhel<version>-x86_64-100.1.0.tgz
    50 volumeMounts:
    51 - name: mongodb-tools
    52 mountPath: /tools/db/
    53 restartPolicy: Always
    54 terminationGracePeriodSeconds: 30
    55 volumes:
    56 - name: mongodb-versions
    57 emptyDir: {}
    58 - name: mongodb-tools
    59 emptyDir: {}
    60 - configMap:
    61 name: nginx-conf
    62 name: nginx-conf
    63...
  2. 例で強調表示された行を変更して、インストールする MongoDB Server のバージョンを指定します。

    たとえば、MongoDB バージョン4.0.2を別のデータベース バージョンに置き換えるには、次のブロックを更新します。

    - name: setting-up-rhel-mongodb
    image: curlimages/curl:latest
    command:
    - curl
    - -L
    - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel<version>-4.2.0.tgz
    - -o
    - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel<version>-4.2.0.tgz

    MongoDB Database Tools のバージョンを変更するには、次のようにブロックを更新します。

    - name: setting-up-rhel-mongodb-tools
    image: curlimages/curl:latest
    command:
    - curl
    - -L
    - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel<version>-x86_64-100.1.0.tgz
    - -o
    - /tools/db/mongodb-database-tools-rhel<version>-x86_64-100.1.0.tgz
  3. 複数のバージョンを読み込むには、N指定するバージョンごとに適切な initContainer にcurlコマンドを追加します。

    たとえば、MongoDB 6.0.1を提供するように Ninx を構成するには、次の手順に従います。

    - name: setting-up-rhel-mongodb
    image: curlimages/curl:latest
    command:
    - curl
    - -L
    - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    - -o
    - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
  4. このファイルは、 .yamlファイル拡張子で保存します。

  5. 作成した Ninx リソース ファイルで次のocコマンドを呼び出して Ninx を配置します。

    oc apply -f <nginix>.yaml
4

このチュートリアルのサービスは、ポート80経由で Kubernetes クラスター内の他のノードからのトラフィックに Nginx を公開します。 これにより、Kubernetes Operator を使用して配置した MongoDB Database リソース ポッドは、Ninx からインストール アーカイブをダウンロードできます。

次のコマンドを実行して、Ninx 配置のサービスを作成します。

  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

強調表示されたセクションでは、次のMongoDB Ops Manager構成設定を使用します。

  • automation.versions.source: remote リモート モードを有効にするには、 spec.configurationの を使用します。

  • automation.versions.download.baseUrlspec.configurationの )を使用して、MongoDB インストール アーカイブを提供する HTTP リソースのベース URL を提供します。

    この行を更新して、 <namespace>を Kubernetes Operator を使用してリソースを配置する名前空間に置き換えます。

  • 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

MongoDB Ops Managerのリソース定義のファイル名に対して、次の kubectl コマンドを呼び出します。

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

MongoDB Ops Manager リソースのステータスを確認するには、次のコマンドを呼び出します。

kubectl get om -o yaml -w

リソースの配置ステータスの詳細については、「 Kubernetes 演算子のトラブルシューティング 」を参照してください。

MongoDB 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"

リソースの接続 URLを示すstatus.opsManager.urlフィールドの値をコピーします。 この値は、 ConfigMap を作成するときに使用します 手順の後半にある を参照してください。

10
  1. まだ行っていない場合は、次の前提条件を完了します。

  2. を配置した名前空間と同じ名前空間に DatabaseMongoDB リソース MongoDB Ops Managerを配置します。以下のことを確認してください。

    1. リソースのspec.opsManager.configMapRef.nameを ConfigMap のmetadata.nameと照合します。

    2. リソースの spec.credentials を、 MongoDB Ops ManagerプログラムAPIキー ペアを含む作成したシークレットの名前と照合します。

Operator を使用して作成したMongoDB Agent MongoDBデータベース リソース コンテナで実行されているKubernetesMongoDB Ops Manager は、インターネットからではなく Nginx 経由で からインストール アーカイブをダウンロードします。