このバージョンのドキュメントはアーカイブされ、このバージョンのMongoDB Enterprise Kubernetes Operator はサポートされなくなりました。
MongoDB Enterprise Kubernetes演算子は非推奨です。 新しい MongoDB Controls for Kubernetes Operator が、 MongoDB Enterprise Kubernetes Operator に置き換わります。Kubernetes Operator 用のドライバーの最初のバージョンは、 Enterprise Kubernetes Operatorの v1.33 と機能的に同等です。この変更の詳細と、新しい演算子への移行に関するガイダンスについては、 最初の 新しいバージョンの リリースノート を参照してください。MongoDB Enterprise Kubernetes Operator の今後のリリースは予定されません。各バージョンは、既存の 1 年間の サポート ポリシー に従ってサポートが終了します。継続的なサポートについては、 Kubernetes Operator 用のコントロールに移行してください。
前提条件
ストレージ クラスはサイズ変更をサポートする必要があります
永続ボリュームが使用する StorageClass とボリュームプラグインプロバイダーがサイズ変更をサポートしていることを確認します。
kubectl patch storageclass/<my-storageclass> --type='json' \ -p='[{"op": "add", "path": "/allowVolumeExpansion", "value": true }]'
サイズ変更をサポートする StorageClass がない場合は、Kubernetes 管理者に問い合わせてください。
手順
1
永続的なカスタムリソースを作成または識別します。
既存のデータベース リソースを使用するか、永続ストレージを持つ新しいデータベース リソースを作成します。 永続的なボリュームが Running
の状態になるまで待ちます。
例
永続的ストレージを持つデータベース リソースには、次が含まれます。
1 apiVersion: mongodb.com/v1 2 kind: MongoDB 3 metadata: 4 name: <my-replica-set> 5 spec: 6 members: 3 7 version: "4.4.0" 8 project: my-project 9 credentials: my-credentials 10 type: ReplicaSet 11 podSpec: 12 persistence: 13 single: 14 storage: "1Gi"
2
リソースが提供するデータベースにデータを挿入します。
Kubernetes クラスターで
mongo
を起動します。kubectl exec -it <my-replica-set>-0 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.0/bin/mongo test
データベースにデータを挿入します。<my-replica-set>:PRIMARY> use test switched to db test <my-replica-set>:PRIMARY> db.tmp.insertOne({"foo":"bar"}) { "acknowledged" : true, "insertedId" : ObjectId("61128cb4a783c3c57ae5142d") }
3
各永続性ボリュームをパッチします。
レプリカセット全体に対して次のコマンドを呼び出します。
kubectl patch pvc/"data-<my-replica-set>-0" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' kubectl patch pvc/"data-<my-replica-set>-1" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' kubectl patch pvc/"data-<my-replica-set>-2" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
各永続ボリューム要求が次の条件になるまで待ちます。
- lastProbeTime: null lastTransitionTime: "2019-08-01T12:11:39Z" message: Waiting for user to (re-)start a pod to finish file system resize of volume on node. status: "True" type: FileSystemResizePending
4
StateftSets を削除します。
注意
この手順では、StatulSet のみが削除されます。ポッドは変更されず、を実行中になります。
StateftSetリソースを削除します。
kubectl delete sts --cascade=false <my-replica-set>
5
新しいストレージ値でデータベース リソースを更新します。
ディスク サイズを更新します。 希望のテキスト エディターを開き、次の例のような変更を加えます。
例
レプリカセットのディスク サイズを 2 GB に更新するには、データベース リソース仕様の
storage
の値を変更します。1 apiVersion: mongodb.com/v1 2 kind: MongoDB 3 metadata: 4 name: <my-replica-set> 5 spec: 6 members: 3 7 version: "4.4.0" 8 project: my-project 9 credentials: my-credentials 10 type: ReplicaSet 11 podSpec: 12 persistence: 13 single: 14 storage: "2Gi" 新しいボリューム サイズでステートフルセットリソースを再作成します。
kubectl apply -f my-replica-set-vol.yaml この StateftSet が
Running
状態になるまで待ちます。
6