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

1 つのデータベース リソースのストレージ サイズ変更

項目一覧

  • 前提条件
  • 手順

永続ボリュームが使用する StorageClass とボリュームプラグインプロバイダーがサイズ変更をサポートしていることを確認します。

kubectl patch storageclass/<my-storageclass> --type='json' \
-p='[{"op": "add", "path": "/allowVolumeExpansion", "value": true }]'

サイズ変更をサポートする StorageClass がない場合は、Kubernetes 管理者に問い合わせてください。

1

既存のデータベース リソースを使用するか、永続ストレージを持つ新しいデータベース リソースを作成します。 永続的なボリュームが Runningの状態になるまで待ちます。

永続的ストレージを持つデータベース リソースには、次が含まれます。

1apiVersion: mongodb.com/v1
2kind: MongoDB
3metadata:
4 name: <my-replica-set>
5spec:
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
  1. Kubernetes クラスターでmongoを起動します。

    $kubectl exec -it <my-replica-set>-0 \
    /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.0/bin/mongo
  2. 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

注意

この手順では、 State fullSet が削除されます のみ。ポッドは変更されずに実行されます。

Atlas App Services の削除 リソース。

kubectl delete sts --cascade=false <my-replica-set>
5
  1. ディスク サイズを更新します。 希望のテキスト エディターを開き、次の例のような変更を加えます。

    レプリカセットのディスク サイズを 2 GB に更新するには、データベース リソース仕様のstorageの値を変更します。

    1apiVersion: mongodb.com/v1
    2kind: MongoDB
    3metadata:
    4 name: <my-replica-set>
    5spec:
    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"
  2. StateftSet の再作成 リソース(新しいボリューム サイズ)に設定します。

    kubectl apply -f my-replica-set-vol.yaml
  3. この StateftSet がRunning状態になるまで待ちます。

6

次のコマンドを呼び出します。

kubectl rollout restart sts <my-replica-set>

新しいポッドはサイズ変更されたボリュームをマウントします。

7

永続的なボリューム が は再利用された場合、 ステップ2 で挿入したデータは 永続的なボリューム に保存されているデータベースにある可能性があります :

$ kubectl exec -it <my-replica-set>-1 \
/var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.0/bin/mongo
<my-replica-set>:PRIMARY> use test
switched to db test
<my-replica-set>:PRIMARY> db.tmp.count()
1

戻る

大規模な配置

項目一覧