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

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

項目一覧

重要

MongoDB Ops Managerでローカル モードを使用するようにKubernetes を構成することは推奨されません。代わりに、リモート モードを使用するようにMongoDB Ops Managerを構成する を検討してください。

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

クラスター内のノードがインターネットにアクセスできない場合は、 Operator MongoDB Ops Managerを使用して を ローカル モード KubernetesKubernetesで実行するように構成できます。バックアップデーモンとマネージド MongoDB リソースのダウンロード インストール アーカイブは、 永続的なボリューム からのみ MongoDB Ops Manager ステートメントを使用して を作成します。

この手順では、インストール アーカイブをMongoDB Ops Managerにアップロードする方法について説明します。

MongoDB Ops Managerがインターネットにアクセスできない場合は、「配置構築でインターネット アクセスを制限する 」を参照してください。

互換性については、「 MongoDB Enterprise Kubernetes Operator の互換性」を参照してください。 各イメージで利用可能なすべてのバージョンを表示するには、「コンテナイメージ 」を参照してください。

  • MongoDB Ops Managerのリソースを配置します。 次の手順は、MongoDB Ops ManagerKubernetes オブジェクト を更新する方法を示しています。 ローカル モードを有効にします。

  • ローカル モードを有効にするときにダウンタイムを回避するには、spec.replicas 1MongoDB Ops Managerのリソース定義で {2 を より大きい値に設定していることを確認してください。

    MongoDB Ops Managerの利用性をMongoDB Ops Managerた場合は、このチュートリアルを開始する前に変更を適用してください。

    kubectl apply -f <opsmgr-resource>.yaml -n <metadata.namespace>
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

このチュートリアルでは、 クラスター内のMongoDB Ops Manager Kubernetesポッドを管理するステートフルセットを更新します。

がMongoDB Ops Manager Kubernetesローカル モード に必要な更新を適用できるように、まず Atlas Triggers を削除する必要があります。

  1. MongoDB Ops Managerステートメントセットの名前を見つけます。

    kubectl get statefulsets

    metadata.nameに一致する応答内のエントリ

    MongoDB Ops Managerステートメントは、metadata.name MongoDB Ops Managerリソース定義の に一致する応答内のエントリです。

    kubectl get statefulsets -n mongodb
    NAME READY AGE
    ops-manager-localmode 2/2 2m31s
    ops-manager-localmode-db 3/3 4m46s
  2. MongoDB Ops Managerのステートメントを削除します。

    警告

    MongoDB Ops Managerステートメントを削除するときは、--cascade=false フラグを必ず含めてください。 このフラグを含めない場合、 KubernetesはMongoDB Ops Managerポッドも削除します。

    kubectl delete statefulset --cascade=false <ops-manager-statefulset>
3

この例の 9 ~ 31 行を次のようにコピーします。

  • ローカル モードを有効にするには、 で spec.configurationの構成設定 を使用します。MongoDB Ops Managerautomation.versions.source: local

  • 永続的なボリューム MongoDB Ops ManagerMongoDBの定義 Atlas の で、 インストール アーカイブの保存Operator を使用して作成したMongoDB Agent MongoDBデータベース リソース コンテナで実行されているKubernetesMongoDB Ops Manager は、インターネットからではなく からインストール アーカイブをダウンロードします。

1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: ops-manager-localmode
5spec:
6 replicas: 2
7 version: "6.0.0"
8 adminCredentials: ops-manager-admin-secret
9 configuration:
10 # this enables local mode in Ops Manager
11 automation.versions.source: local
12 statefulSet:
13 spec:
14 # the Persistent Volume Claim will be created for each Ops Manager Pod
15 volumeClaimTemplates:
16 - metadata:
17 name: mongodb-versions
18 spec:
19 accessModes: [ "ReadWriteOnce" ]
20 resources:
21 requests:
22 storage: "20Gi"
23 template:
24 spec:
25 containers:
26 - name: mongodb-ops-manager
27 volumeMounts:
28 - name: mongodb-versions
29 # this is the directory in each Pod where all MongoDB
30 # archives must be put
31 mountPath: /mongodb-ops-manager/mongodb-releases
32 backup:
33 enabled: false
34 applicationDatabase:
35 members: 3
4

希望のテキストエディタを開き、 オブジェクト を貼り付けます リソース ファイル内の適切な場所に指定する必要があります。

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

    kubectl apply -f <opsmgr-resource>.yaml
  2. のリソース定義に変更を適用すると、Kubernetes は新しいMongoDB Ops Manager ステートメントセットを作成します。MongoDB Ops Manager次の手順に進む前に、次のコマンドを実行して、 MongoDB Ops Manager Atlas が存在することを確認します。

    kubectl get statefulsets

    新しいMongoDB Ops Managerステートメントセットは、準備完了したメンバーを 0 個表示する必要があります。

    kubectl get statefulsets -n mongodb
    NAME READY AGE ops-manager-localmode 0/2 2m31s
    ops-manager-localmode-db 3/3 4m46s
7
  1. MongoDB Ops Managerクラスター内のKubernetes ポッドを一覧表示します。

    kubectl get pods
  2. 1 つのMongoDB Ops Managerポッドを削除します。

    kubectl delete pod <om-pod-0>
  3. Kubernetesは、削除したMongoDB Ops Managerポッドを再作成します。 新しいポッドが準備されるまで、新しいポッドのステータスを取得し続けます。

    kubectl get pods

    新しい ポッドが初期化されている場合、出力は次の例のようになります。

    NAME READY STATUS RESTARTS AGE
    mongodb-enterprise-operator-5648d4c86-k5brh 1/1 Running 0 5m24s
    ops-manager-localmode-0 0/1 Running 0 0m55s
    ops-manager-localmode-1 1/1 Running 0 5m45s
    ops-manager-localmode-db-0 1/1 Running 0 5m19s
    ops-manager-localmode-db-1 1/1 Running 0 4m54s
    ops-manager-localmode-db-2 1/1 Running 0 4m12s

    新しい ポッドが準備完了すると、出力は次の例のようになります。

    NAME READY STATUS RESTARTS AGE
    mongodb-enterprise-operator-5648d4c86-k5brh 1/1 Running 0 5m24s
    ops-manager-localmode-0 1/1 Running 0 3m55s
    ops-manager-localmode-1 1/1 Running 0 5m45s
    ops-manager-localmode-db-0 1/1 Running 0 5m19s
    ops-manager-localmode-db-1 1/1 Running 0 4m54s
    ops-manager-localmode-db-2 1/1 Running 0 4m12s
  4. ポッドをすべて削除し、すべての新しいポッドが準備できていることを確認するまで、ステップ b c を繰り返します。MongoDB Ops Manager

8

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 を作成するときに使用します 手順の後半にある を参照してください。

9

ダウンロードするインストーラーは、オペレーターを配置した環境によって異なります。

注意

次の例には、MongoDB Community Edition の指定されたバージョンをダウンロードできるリンクが含まれています。 MongoDB Community Edition の他のバージョンをダウンロードするには、 MongoDB Community Edition ダウンロード センターにアクセスしてください。 MongoDB Enterpriseをダウンロードするには、 MongoDB Enterpriseダウンロードセンター にアクセスします。

Kubernetes Operator を配置する MongoDB Server バージョンの RHEL インストール tarball をダウンロードします。 たとえば、 6.0.1リリースをダウンロードするには、次の手順に従います。

curl -OL https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
10

配置するMongoDBバージョンごとにMongoDBアーカイブをMongoDB Ops Manager永続ボリュームにコピーします。

使用するコマンドは、Kubernetes Operator を配置した環境によって異なります。

注意

複数のMongoDB Ops Manager replicaを配置した場合は、 MongoDBインストール tarball パッケージのみを Replica 1 以降にコピーします。

MongoDBインストール アーカイブをMongoDB Ops Managerにコピーするには、次の手順に従います。

MongoDB Serverインストールの tarball をMongoDB Ops Managerの永続ボリュームにコピーします。 たとえば、 6.0.1リリースをコピーするには、次のようにします。

Replica 0:
kubectl cp mongodb-linux-x86_64-rhel80-6.0.1.tgz \
"ops-manager-localmode-0:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz"
Replica 1:
kubectl cp mongodb-linux-x86_64-rhel80-6.0.1.tgz \
"ops-manager-localmode-1:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz"

MongoDBインストール アーカイブをMongoDB Ops Manager Per データ ボリュームにコピーするには、 MongoDB Serverインストール tarball をMongoDB Ops Managerにコピーします。 たとえば、 6.0.1リリースをコピーするには、次のようにします。

Replica 0:
oc rsync "ops-manager-localmode-0:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz" \
mongodb-linux-x86_64-rhel80-6.0.1.tgz
Replica 1:
oc rsync "ops-manager-localmode-1:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz" \
mongodb-linux-x86_64-rhel80-6.0.1.tgz
11
  1. まだ行っていない場合は、次の前提条件を完了します。

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

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

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

Kubernetes Operator で作成した MongoDB database リソース コンテナでの MongoDB Agent の実行。 インストール アーカイブは、インターネットからダウンロードするのではなく、 MongoDB Ops Managerからダウンロードします。