デフォルト構成では、MongoDB Agent の および バックアップデーモンは、MongoDB, Inc. からインターネット経由で MongoDB インストール アーカイブにアクセスします。
MongoDB Ops Managerをリモート モードで実行するように構成すると、バックアップデーモンと管理対象のMongoDBリソースのダウンロード インストールはMongoDB Ops Managerからのみアーカイブされます。これは、ローカル ウェブ サーバーまたは S3 互換ストア上のHTTPエンドポイントへのダウンロード リクエストをプロキシします。 Kubernetesクラスターにデプロイされた
前提条件と考慮事項
手順
次の手順では、Nginx HTTP サーバーを Kubernetes クラスターに配置して MongoDB インストール アーカイブをホストします。
kubectlを名前空間にデフォルトします。
まだ作成していない場合は、次のコマンドを実行して、作成した名前空間ですべての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> 
Ninx 用の ConfigMap を作成します。
このチュートリアルの ConfigMap により、Ngix は次のように構成されます。
- Kubernetes クラスター内のノードでポート - 80をリッスンする- localhostという名前の HTTP サーバーを実行し、
- MongoDB Server および MongoDB Database Tools のインストール アーカイブを提供するロケーションに、特定のリソースに対する HTTP リクエストをルーティングします。 
- 次の例の Ninx ConfigMap をテキストエディタに貼り付けます。 - 1 - 2 - apiVersion: v1 - 3 - kind: ConfigMap - 4 - metadata: - 5 - name: nginx-conf - 6 - data: - 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 - ... 
- このファイルは、 - .yamlファイル拡張子で保存します。
- 作成した ConfigMap ファイルで次の - kubectlコマンドを呼び出して、Ninx ConfigMap を作成します。- kubectl apply -f <nginix-configmap>.yaml 
Kubernetes クラスターに Nginx を配置します。
このチュートリアルの Ninx リソース構成は次のとおりです。
- 次の 1 つの Ninx レプリカを配置します: 
- MongoDB Server および MongoDB Database Tools のインストール アーカイブを保存するためのボリュームマウントを作成し、 
- curlKubernetesクラスターに配置したMongoDB Database リソースに提供するインストール アーカイブをダウンロードするために、 コマンドを使用する初期化コンテナを定義します。
- 次の例の Ninx リソース構成をテキスト エディターに貼り付けます。 - 1 - 2 - apiVersion: apps/v1 - 3 - kind: Deployment - 4 - metadata: - 5 - name: nginx-deployment - 6 - spec: - 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 - ... 
- 例で強調表示された行を変更して、インストールする 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 
- 複数のバージョンを読み込むには、 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 
 
- 複数のバージョンを読み込むには、 
- このファイルは、 - .yamlファイル拡張子で保存します。
- 作成した Ninx リソース ファイルで次の - kubectlコマンドを呼び出して Ninx を配置します。- kubectl apply -f <nginix>.yaml 
- 次の例の Ninx リソース構成をテキスト エディターに貼り付けます。 - 1 - 2 - apiVersion: apps/v1 - 3 - kind: Deployment - 4 - metadata: - 5 - name: nginx-deployment - 6 - spec: - 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 - ... 
- 例で強調表示された行を変更して、インストールする 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 
- 複数のバージョンを読み込むには、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 
- このファイルは、 - .yamlファイル拡張子で保存します。
- 作成した Ninx リソース ファイルで次の - ocコマンドを呼び出して Ninx を配置します。- oc apply -f <nginix>.yaml 
Kubernetes サービスを作成して、クラスター内の他のポッドから Ninx にアクセスできるようにします。
このチュートリアルのサービスは、ポート80経由で Kubernetes クラスター内の他のノードからのトラフィックに Nginx を公開します。 これにより、Kubernetes Operator を使用して配置した MongoDB Database リソース ポッドは、Ninx からインストール アーカイブをダウンロードできます。
次のコマンドを実行して、Ninx 配置のサービスを作成します。
- 次のサンプル サービスをテキスト エディターに貼り付けます。 - 1 - 2 - apiVersion: v1 - 3 - kind: Service - 4 - metadata: - 5 - name: nginx-svc - 6 - labels: - 7 - app: nginx - 8 - spec: - 9 - ports: - 10 - - port: 80 - 11 - protocol: TCP - 12 - selector: - 13 - app: nginx - 14 - ... 
- このファイルは、 - .yamlファイル拡張子で保存します。
- 作成したサービスファイルで次の - kubectlコマンドを呼び出してサービスを作成します。- kubectl apply -f <nginix-service>.yaml 
このMongoDB Ops Managerリソースの強調表示されたフィールドをコピーして更新します。
強調表示されたセクションでは、次のMongoDB Ops Manager構成設定を使用します。
- automation.versions.source: remoteリモート モードを有効にするには、- spec.configurationの を使用します。
- automation.versions.download.baseUrl(- spec.configurationの )を使用して、MongoDB インストール アーカイブを提供する HTTP リソースのベース URL を提供します。- この行を更新して、 - <namespace>を Kubernetes Operator を使用してリソースを配置する名前空間に置き換えます。
- automation.versions.download.baseUrl.allowOnlyAvailableBuilds: "false"- spec.configurationの を使用して、エンタープライズ ビルドで問題が発生しないようにします。
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDBOpsManager 4 metadata: 5  name: ops-manager-localmode 6 spec: 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 ... 
コピーしたサンプル セクションを既存のMongoDB Ops Managerリソースに貼り付けます。
テキスト エディターを開き、オブジェクト 仕様をリソースファイル内の適切な場所に貼り付けます。
MongoDB Ops Managerインスタンスのステータスを追跡します。
MongoDB Ops Manager リソースのステータスを確認するには、次のコマンドを呼び出します。
kubectl get om -o yaml -w 
リソースの配置ステータスの詳細については、「 Kubernetes 演算子のトラブルシューティング 」を参照してください。
MongoDB Ops Managerリソースが Pending フェーズを完了すると、コマンドは次のような出力を返します。
1 status: 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 を作成するときに使用します。
MongoDB Database リソースを配置します。
- まだ行っていない場合は、次の前提条件を完了します。 
- を配置した名前空間と同じ名前空間に DatabaseMongoDB リソース MongoDB Ops Managerを配置します。以下のことを確認してください。 - リソースの - spec.opsManager.configMapRef.nameを ConfigMap の- metadata.nameと照合します。
- リソースの - spec.credentialsを、 MongoDB Ops ManagerプログラムAPIキー ペアを含む作成したシークレットの名前と照合します。
 
Operator を使用して作成したMongoDB Agent MongoDBデータベース リソース コンテナで実行されているKubernetesMongoDB Ops Manager は、インターネットからではなく Nginx 経由で からインストール アーカイブをダウンロードします。