#mongodb #kubernetes
#mongodb #kubernetes
Вопрос:
Я выполнил настройку набора реплик mongodb на k8s с 4 участниками (1 основной, 1 вторичный, 1 арбитр, 1 скрытый для резервного копирования). Все участники должны включить аутентификацию, передав аргумент —auth.
Я также создаю cronjob, который отвечает за резервное копирование базы данных в s3.
Однако у меня возникла проблема при попытке подключиться к модулю резервного копирования из модуля cronjob.
Вот стек ошибок:
connecting to: mongodb://mongodb-backup-0.mongodb-backup.default.svc.cluster.local:27017/?authSource=adminamp;gssapiServiceName=mongodb
2019-04-05T04:26:52.870 0000 E QUERY [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:343:13
@(connect):2:6
exception: connect failed
Я разрешаю подключаться к экземпляру mongo backup из модуля резервного копирования:
rs0:SECONDARY> db.auth("admin", "test")
1
Я также пытаюсь подключить модуль резервного копирования из дополнительного модуля. Он сообщает о той же ошибке.
Вот моя команда:
mongo --authenticationDatabase admin --host mongodb-backup-0.mongodb-backup.default.svc.cluster.local --port 27017 -u "admin" -p "test"
Однако, если я подключаюсь к модулю резервного копирования без имени пользователя и пароля, я разрешаю подключиться к экземпляру резервной копии mongodb.
mongo --authenticationDatabase admin --host mongodb-backup-0.mongodb-backup.default.svc.cluster.local --port 27017
Кто-нибудь может дать совет?
Ответ №1:
Я нашел ответ на эту проблему.
Я запускаю экземпляр mongod с --authenticationMechanism 'SCRAM-SHA-256'
параметром. Итак, оболочке mongo требуется ввести --authenticationMechanism
, чтобы разрешить вход в систему.