ローカル モードを使用するようにMongoDB Ops Managerリソースを構成する
項目一覧
- 前提条件
- 手順
-
kubectl
をデフォルトで名前空間に設定します。 - MongoDB MongoDB Ops ManagerOps Managerポッドを管理する ステートメントセット を削除します。
- このMongoDB Ops Managerリソースのフィールドをコピーします。
- コピーしたサンプル セクションを既存のMongoDB Ops Managerリソースに貼り付けます。
- MongoDB Ops Manager構成ファイルを保存します。
- MongoDB Ops Manager配置に変更を適用します。
- ローリング方式で、古いMongoDB Ops Managerポッドを削除します。
- MongoDB Ops Managerインスタンスのステータスを追跡します。
- MongoDB インストール アーカイブをローカル マシンにダウンロードします。
- MongoDBアーカイブをMongoDB Ops Manager永続ボリュームにコピーします。
- MongoDB Database リソースを配置します。
重要
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
1
MongoDB Ops Managerのリソース定義で {2 を より大きい値に設定していることを確認してください。MongoDB Ops Managerの利用性をMongoDB Ops Managerた場合は、このチュートリアルを開始する前に変更を適用してください。
kubectl apply -f <opsmgr-resource>.yaml -n <metadata.namespace>
手順
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>
MongoDB MongoDB Ops ManagerOps Managerポッドを管理するステートメントセットを削除します。
このチュートリアルでは、 クラスター内のMongoDB Ops Manager Kubernetesポッドを管理するステートフルセットを更新します。
がMongoDB Ops Manager Kubernetesローカル モード に必要な更新を適用できるように、まず Atlas Triggers を削除する必要があります。
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 MongoDB Ops Managerのステートメントを削除します。
警告
MongoDB Ops Managerステートメントを削除するときは、
--cascade=false
フラグを必ず含めてください。 このフラグを含めない場合、 KubernetesはMongoDB Ops Managerポッドも削除します。kubectl delete statefulset --cascade=false <ops-manager-statefulset>
このMongoDB Ops Managerリソースのフィールドをコピーします。
この例の 9 ~ 31 行を次のようにコピーします。
ローカル モードを有効にするには、 で
spec.configuration
の構成設定 を使用します。MongoDB Ops Managerautomation.versions.source: local
永続的なボリューム MongoDB Ops ManagerMongoDBの定義 Atlas の で、 インストール アーカイブの保存Operator を使用して作成したMongoDB Agent MongoDBデータベース リソース コンテナで実行されているKubernetesMongoDB Ops Manager は、インターネットからではなく からインストール アーカイブをダウンロードします。
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: ops-manager-localmode 5 spec: 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
コピーしたサンプル セクションを既存のMongoDB Ops Managerリソースに貼り付けます。
希望のテキストエディタを開き、 オブジェクト を貼り付けます リソース ファイル内の適切な場所に指定する必要があります。
MongoDB Ops Manager配置に変更を適用します。
MongoDB Ops Managerのリソース定義のファイル名に対して、次の
kubectl
コマンドを呼び出します。kubectl apply -f <opsmgr-resource>.yaml のリソース定義に変更を適用すると、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
ローリング方式で、古いMongoDB Ops Managerポッドを削除します。
MongoDB Ops Managerクラスター内のKubernetes ポッドを一覧表示します。
kubectl get pods 1 つのMongoDB Ops Managerポッドを削除します。
kubectl delete pod <om-pod-0> 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 ポッドをすべて削除し、すべての新しいポッドが準備できていることを確認するまで、ステップ b と c を繰り返します。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 インストール アーカイブをローカル マシンにダウンロードします。
ダウンロードするインストーラーは、オペレーターを配置した環境によって異なります。
注意
次の例には、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
MongoDBアーカイブをMongoDB Ops Manager永続ボリュームにコピーします。
配置する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
リリースをコピーするには、次のようにします。
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"
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
リリースをコピーするには、次のようにします。
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
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
MongoDB Database リソースを配置します。
まだ行っていない場合は、次の前提条件を完了します。
を配置した名前空間と同じ名前空間にMongoDB データベース リソース MongoDB Ops Managerを配置します。以下のことを確認してください。
リソースの
spec.opsManager.configMapRef.name
を ConfigMap のmetadata.name
と照合します。リソースの
spec.credentials
を、 MongoDB Ops ManagerプログラムAPIキー ペアを含む作成したシークレットの名前と照合します。
Kubernetes Operator で作成した MongoDB database リソース コンテナでの MongoDB Agent の実行。 インストール アーカイブは、インターネットからダウンロードするのではなく、 MongoDB Ops Managerからダウンロードします。