Измените dBpath для mon go db в кубернетах - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть некоторые проблемы, связанные с развертыванием mongodb (с сохранением состояния) на k8s с использованием постоянного тома на nfs. По сути, я хотел бы изменить dbPath, в который mon go будет записывать свои данные.

Это мое определение yaml с сохранением состояния (часть его):

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongodb-standalone
spec:
  serviceName: mongo-database
  replicas: 1
  selector:
    matchLabels:
      app: mongo-database
  template:
    metadata:
      labels:
        app: mongo-database
        selector: mongodb-standalone
    spec:
      containers:
      - name: mongodb-standalone
        image: mongo:4.2.0
        env:
          - name: MONGO_INITDB_ROOT_USERNAME_FILE
            value: /etc/k8-secrets/admin/MONGO_ROOT_USERNAME
          - name: MONGO_INITDB_ROOT_PASSWORD_FILE
            value: /etc/k8-secrets/admin/MONGO_ROOT_PASSWORD
        volumeMounts:
        ...
        - name: mongodb-conf
          mountPath: /config
          readOnly: true
        - name: mongodb-data
          mountPath: /data/db3
      volumes:
      ...
      - name: mongodb-conf
        configMap:
          name: mongodb-standalone
          items:
          - key: mongo.conf
            path: mongo.conf
      - name: mongodb-data
        persistentVolumeClaim:
          claimName: mongodb-standalone

И это yaml ConfigMap для определения файла конфигурации, в котором сохраняется новый dbPath:

apiVersion: v1
kind: ConfigMap
metadata:
  name: mongodb-standalone
data:
  mongo.conf: |
    storage:
      dbPath: /data/db3

Проблема в том, что, когда я выполняю развертывание таким образом, как я вижу из журналов, mon go всегда запускается по предопределенному пути:

2020-02-26T16:22:45.726+0000 I  CONTROL  [main] ***** SERVER RESTARTED *****
2020-02-26T16:22:45.732+0000 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-02-26T16:22:45.740+0000 I  CONTROL  [initandlisten] MongoDB starting : pid=28 port=27017 dbpath=/data/db 64-bit host=mongodb-standalone-0

Но когда я заглядываю внутрь своего контейнера, я вижу следующее:

root@mongodb-standalone-0:/data# ls
configdb  db  db3

Я могу найти обе папки, но только в одной базе данных присутствуют данные коллекций и индексов (реальное содержимое базы данных) , Почему? Как правильно установить dbPath?

Я видел, что есть эта точка входа, которую использует мое изображение (mon go 4.2), но я не очень хорошо понимаю ее

Редактировать:

Это содержимое папки db3 (моя пользовательская папка):

root@mongodb-standalone-0:/data/db3# ls
WiredTiger  WiredTiger.lock  WiredTiger.turtle  WiredTiger.wt  dev_canp_  diagnostic.data  journal  mongod.lock

Итак, mon go что-то там пишет. Это содержимое папки db (по умолчанию):

root@mongodb-standalone-0:/data/db# ls   
WiredTiger         WiredTiger.wt     collection-0-6274164459280941380.wt  collection-8-6274164459280941380.wt  index-10-6274164459280941380.wt  index-6-6274164459280941380.wt  mongod.lock
WiredTiger.lock    WiredTigerLAS.wt  collection-2-6274164459280941380.wt  diagnostic.data                      index-3-6274164459280941380.wt   index-9-6274164459280941380.wt  sizeStorer.wt
WiredTiger.turtle  _mdb_catalog.wt   collection-4-6274164459280941380.wt  index-1-6274164459280941380.wt       index-5-6274164459280941380.wt   journal                         storage.bson

Кроме того, когда я ищу файл конфигурации по умолчанию, я получаю это:

root@mongodb-standalone-0:/etc# ls -lah mongod*          
-rw-r--r-- 1 root root 626 Dec 19  2013 mongod.conf.orig

с *.orig суффикс Что это значит?

...