У меня есть некоторые проблемы, связанные с развертыванием 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
суффикс Что это значит?